スピーカーとスライダーがあるイベントがあります。
クラス イベント
has_many :speakers, dependent: :destroy
accepts_nested_attributes_for :speakers, allow_destroy: true
has_many :sliders, dependent: :destroy
クラススピーカー
belongs_to :event
クラススライダー
belongs_to :event
スピーカーには独自のコントローラーがなく (ネストされた属性を介してモデルに直接送信されます)、スライダーにはあります。
新しいスライダーをアップロードすると、イベント ビューでそれらを出力しようとするとエラーが発生します (スピーカーはうまく表示されます)。
イベントビュー
<% @event.sliders.each do %>
<p>hello dolly</p>
<% end %>
エラー
SQLite3::SQLException: no such column: sliders.event_id: SELECT "sliders".* FROM "sliders" WHERE "sliders"."event_id" = ?
イベントコントローラー
def show
@event = Event.find(params[:id])
end
コンソール:
>> e = Event.find_by(id:9)
=> #<Event id: 9, title: "...">
>> e.speakers
=> #<ActiveRecord::Associations::CollectionProxy [#<Speaker id: 59, name: "...", created_at: "2013-08-27 09:28:58", updated_at: "2013-08-27 09:28:58", event_id: 9>]>
>> e.sliders
!! #<ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: sliders.event_id: SELECT "sliders".* FROM "sliders" WHERE "sliders"."event_id" = ?>
移行とスキーマはすべて整っていますが、関係に問題があるのでしょうか?
ありがとう、スタックオーバーフローの人々