Lors de la définition d'une méthode de définition virtuelle qui repose sur une autre méthode à définir, il semble que l'ordre des attributs définis dans le hachage soit important. Existe-t-il un moyen de contourner ce problème tout en attribuant des attributs de masse?Définition des attributs du modèle Rails
https://gist.github.com/3629539
EDIT
La condition dans le code réel, non représenté dans l'exemple, est la vérification de l'existence d'un objet associé. Si l'objet existe, définissez une valeur. Sinon, ignorez la valeur transmise. Cependant, j'utilise aussi accept_nested_attributes_for. Ainsi, l'attribut hash peut contenir les attributs de l'association. Dans ce cas, l'objet existera.
{:name => 'Fred', :nested_attributes => {:color => 'red'}}
Le nom ne sera pas défini car le modèle n'existe pas.
{:nested_attributes => {:color => 'red'}, :name => 'Fred'}
accepts_nested_attributes_for construira une instance imbriquée, puis définissez les attributs. Lorsque le nom doit être défini, l'instance existera et l'attribut imbriqué sera défini.
Ew; Êtes-vous sûr que c'est la meilleure façon de s'y prendre? Vous ne connaissez pas votre contexte, mais cela pourrait-il être plus logique de gérer cela avec un rappel de modèle? –
Pourriez-vous donner un exemple? – efoo