Je le modèle suivantemboîtées Forms ne passe pas belongs_to: id
class Project < ActiveRecord::Base
has_many :assignments, :conditions => {:deleted_at => nil}
has_many :members, :conditions => {:deleted_at => nil}
accepts_nested_attributes_for :members, :allow_destroy => true
end
class Member < ActiveRecord::Base
belongs_to :project
belongs_to :person
belongs_to :role
has_many :assignments, :dependent => :destroy, :conditions => {:deleted_at => nil}
accepts_nested_attributes_for :assignments, :allow_destroy => true
validates_presence_of :role_id
validates_presence_of :project_id
end
et je suppose que le contrôleur remplira le member.project_id sur project.save pour chaque enregistrement de membre imbriqué. Cependant, j'obtiens une erreur de validation indiquant que project_id est vide.
Ma méthode de commande:
def create
# @project is created in before_filter
if @project.save
flash[:notice] = "Successfully created project."
redirect_to @project
else
render :action => 'new'
end
end
Ai-je besoin de régler manuellement le project_id dans chaque enregistrement de membre imbriqué? Ou qu'est-ce que le contrôleur doit remplir lorsqu'il crée les enregistrements de membre?
Est-ce que necessitate @project être sauvé déjà à la DB? J'essaye de cloner un projet existant avec ses membres et d'enregistrer avec un nouveau project_id tout à la fois. –