2013-03-13 3 views
4

Ce qui est bizarre pour moi, donc je suis juste curieux de savoir si quelqu'un a couru d'autre dans ce:Impossible d'autoriser les paramètres?

J'ai les suivantes:

def credential_params 
    params.required(:credential).permit(:name,:agent_ids) 
end 

Dans mon contrôleur créer et mettre à jour les actions que je suis en utilisant l'affectation de masse à l'appel de paramètre ci-dessus ...

@credential.update_attributes(credential_params) 

Mais je encore Unpermitted parameters: agent_ids

Si je change cela 0.123.(c.-à-permis tous) bien sûr cela fonctionne. Je me sens comme si je devais négliger quelque chose d'évident ici ... quelqu'un sait ce que c'est?

+0

devrait pas être 'require'? – jvnill

+0

@jvnill - après avoir regardé les docs, ça devrait l'être, mais vous savez quoi? Cela fonctionne aussi "requis". Je me demande si c'est un bug ou une fonctionnalité ... – Andrew

+0

@jvnill: c'est une fonctionnalité, 'required' est un alias pour' require', voir la source près de: https://github.com/rails/strong_parameters/blob/ master/lib/action_controller/parameters.rb # L58 – Andrew

Répondre

5

essayer

params.require(:credential).permit(:name, { :agent_ids => [] }) 
+0

Je pense que nous avons posté à peu près en même temps, mais je vais vous donner la réponse car elle ne vaut pas de points pour moi :) Merci d'avoir jeté un oeil! – Andrew

+0

ah merci. Oui, il ressemble à une seconde différence. – jvnill

5

Vous l'avez.

Un tableau est pas l'un des supported types:

Les types scalaires sont autorisés à cordes, Symbole, NilClass, numérique, TrueClass, FalseClass, date, heure, DateTime, StringIO, IO, ActionDispatch :: Http :: UploadedFile et Rack :: Test :: UploadedFile.

Par conséquent, la solution est de spécifier un tableau, comme ceci:

params.require(:credential).permit(:name, :agent_ids => []) 

autres Hope trouver ce utile.

Questions connexes