Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby rails与模块名连接_Ruby_Ruby On Rails 3 - Fatal编程技术网

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)