J'ai deux attributs, 'a_value' et 'b_id'. (Pas leurs vrais noms.) 'A_value' est stocké sur le système de fichiers, en utilisant certaines informations du modèle 'B', référencé par 'b_id'.Puis-je modifier l'ordre d'affectation des nouvelles instances de modèle dans les rails
Alors, mon objet params ressemble:
params[:foo] = {"a_value"=>"nifty value","b_id"=>"38"}
par exemple.
Maintenant, en foo_controller.rb:
foo = Foo.new(params[:foo])
Mais cela ne fonctionne pas avec.
ActiveRecord::RecordNotFound: Couldn't find Foo without an ID
Dans Foo.a_value = (valeur) Je
...
self.my_path = self.b_id.the_path
...
On dirait que Rails est en train de faire les missions dans l'ordre alphabétique et paniquent quand b_id est pas là, même si elle est présente dans la params hash et passe la validation. Est-ce que je peux forcer l'ordre dans lequel cette affectation est effectuée?
Ou puis-je créer un before_filter qui fera l'affectation b_id avant que le reste de l'assignation de masse ne se produise?