rails与模块名称连接

以下是如何加入两个模型

User.where(:id => 1).joins(:posts) 

但是如何使用module / namspace连接两个模型

 @schedules= Swimming::Classschedule.joins(:Swimming::Slot).where(:date => @date) 

似乎无法正常工作(带错误信息)

 :Swimming is not a class/module 

UPDATE

我已更新到@ schedules = Swimming :: Classschedule.joins(:swimming_slots).where(: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

将此行添加到Swimming :: Classschedule模块

belongs_to:swimming_slots,:class_name =>’Swimming :: Slot’,:foreign_key =>“slot_id”

改变加入

 @schedules= Swimming::Classschedule.joins(:swimming_slots).where(:swimming_slots =>{:date => @date}) 

现在它有效

您将关联名称传递给联接。 例如,如果您有类似的关联

 has_many :swimming_slots, class_name: 'Swimming::Classschedule' 

然后你通过swimming_slots和rails将为你做连接。

 User.joins(:swimming_slots) 

更新:

如果slot_id引用了slot_id表中的记录,你应该有类似的东西

 belongs_to :slot, class_name: 'Swimming::Slot' 

在您的class级时间表模型中。 如果你有,你应该能够做到

 Swimming::Classschedule.joins(:slot)