Ruby rails与模块名连接
下面是如何连接两个模型Ruby rails与模块名连接,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,下面是如何连接两个模型 User.where(:id => 1).joins(:posts) 但是如何使用module/namspace连接两个模型呢 @schedules= Swimming::Classschedule.joins(:Swimming::Slot).where(:date => @date) 似乎工作不正常(带有错误消息) 更新 我已经更新到 @schedules=swiming::Classschedule.join(:swiming\u slots)。其中
User.where(:id => 1).joins(:posts)
但是如何使用module/namspace连接两个模型呢
@schedules= Swimming::Classschedule.joins(:Swimming::Slot).where(:date => @date)
似乎工作不正常(带有错误消息)
更新
我已经更新到
@schedules=swiming::Classschedule.join(:swiming\u slots)。其中(:date=>@date)
我有这张桌子
create_table :swimming_classschedules do |t|
t.integer :slot_id
t.integer :coach_id
t.integer :level_id
t.string :note
t.timestamps
end
create_table :swimming_slots do |t|
t.string :date
t.string :start
t.string :end
t.timestamps
end
我怎么会犯这个错误
Association named 'swimming_slots' was not found; perhaps you misspelled it?
更新2
将此行添加到swiming::Classschedule模块
属于:游泳池,:类名称=>'swiming::Slot',:外键=>“Slot\u id”
及
更改加入到
@schedules= Swimming::Classschedule.joins(:swimming_slots).where(:swimming_slots =>{:date => @date})
现在它工作了您将关联名称传递给联接。例如,如果您有一个类似
has_many :swimming_slots, class_name: 'Swimming::Classschedule'
然后你通过游泳槽
,rails将为你做连接
User.joins(:swimming_slots)
更新:
如果slot\u id
引用了swiming\u slot
表中的一条记录,则应该有如下内容
belongs_to :slot, class_name: 'Swimming::Slot'
在您的课程表模型中。如果你有,你应该能做到
Swimming::Classschedule.joins(:slot)
:swiming::Slot
不是有效的Ruby表达式。如果您想要一个模块,它就是swiming::Slot
。如果您想要一个符号,它是:“swiming::Slot”
。
Swimming::Classschedule.joins(:slot)