私はこのようなことをする方法を理解しようとしています:
event = Event.new
loc = Location.new
loc.name = "test"
loc.save
event.locations << loc
event.save!
イベントと場所が多対多の関係にある場合。ただし、次のエラーが発生し続けます。
ActiveRecord::RecordInvalid: Validation failed: Event locations is invalid
最初にイベントを保存するとうまくいきますが、作業中のコンテキストではそのオプションがありません。
ここに私のモデルがあります:
class Event < ActiveRecord::Base
#belongs_to :user
has_many :event_locations
has_many :locations, :through => :event_locations
accepts_nested_attributes_for :locations
end
class EventLocation < ActiveRecord::Base
belongs_to :event
belongs_to :location
validates_presence_of :event
validates_presence_of :location
accepts_nested_attributes_for :location
end
class Location < ActiveRecord::Base
has_many :event_locations
has_many :events, :through => :event_locations
end
ここで、結合モデル EventLocation の検証がこの問題の原因であることがわかりました。
これは検証しないほうがいいですか?それが行われる別の方法はありますか?