tasarruf yoluyla benim sorunun ne olduğundan emin değilim, bu nedenle bu soru biraz daha fazla açıklama gerektirebilir, ama burada en alakalı gibi görünüyor budur: Bir has_many :through
ve sahipraylar 3 Has_many: rekor hatası
katıl modelinde yabancı anahtar olmayan bazı alanlar bulunur. Modelleri kurduğumda ve kaydetmeyi denediğimde, katılma modelindeki yabancı olmayan anahtar alanlarında bir doğrulama hatası alıyorum.
{"first_name"=>"", "last_name"=>"", "weddings_attributes"=>{"0"=>{"wedding_assignments_attributes"=>{"0"=>{"role"=>"Bride's Maid", "budget"=>""}}, "date"=>"", "ceremony_notes"=>""}}}
Ve tam hatadır:
Person.rb
has_many :wedding_assignments, :dependent => :destroy
has_many :weddings, :through=>:wedding_assignments
accepts_nested_attributes_for :weddings
accepts_nested_attributes_for :wedding_assignments
Wedding.rb
has_many :wedding_assignments, :dependent => :destroy
has_many :people, :through=>:wedding_assignments
accepts_nested_attributes_for :people
accepts_nested_attributes_for :wedding_assignments
WeddingAssignment.rb
belongs_to :person
belongs_to :wedding
validates_presence_of :role, :person, :wedding
gel benziyor
people_controller.rb
def new
@person = Person.new
1.times do
wedding = @person.weddings.build
1.times do
assignment = wedding.wedding_assignments.build
assignment.person = @person
assignment.wedding = wedding
end
end
end
def create
@person = Person.new(params[:person])
@person.weddings.each do |wedding|
wedding.wedding_assignments.each do |assignment|
assignment.person = @person #i don't think I should need to set person and wedding manually, but I get a validation error if I don't
assignment.wedding = wedding
end
end
end
parametreler (rolü bir dize):
Dosyalarım benziyor:
ActiveRecord::RecordInvalid in PeopleController#create
Validation failed: Role can't be blank
Eğer yanlış yapıyorum
params[]
görebiliyorum beri açıkça doğru değildir
?
budur 3.0.0
Bu '1 kez' kullanımının ne olduğunu merak ediyorum? – PeterWong
Bunu 2 ya da daha fazla süre değiştirmek isterseniz bunu kolaylaştırmak için yapıyorum. – SooDesuNe
Haklısınız, bunu yapmak bile kullanıcının tek seferde 10 düğün eklemeyi seçmesine izin verebilir. : D – PeterWong