我有活动,其中有扬声器和滑块。
类事件
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" = ?>
我的迁移和模式都到位了,我想我在关系方面遇到了麻烦?
谢谢 Stackoverflow 的人