希望我不會因爲這個太糟糕而惹火 - 我已經盡力找到一個無效的答案。在Ruby on Rails中聲明關聯
我想知道如果有人能幫我弄清楚如何在Ruby on Rails中正確聲明關聯(3)。目前,我有3種型號:
#room.rb
class Room < ActiveRecord::Base
has_many :check_ins
end
#check_in.rb
class CheckIn < ActiveRecord::Base
belongs_to :user
belongs_to :room
end
#user.rb
class User < ActiveRecord::Base
has_one :check_in
end
到目前爲止,我沒有做過任何遷移到foreign_key列添加到我的任何表(不Rails的爲你做這個?)。
我很困惑爲什麼命令CheckIn.first.user
返回nil
而命令User.first.check_in
返回SQLite3::SQLException: no such column
。分別與CheckIn.first.room
和Room.first.check_ins
相同。爲了使User.first.check_in
返回與第一個用戶關聯的CheckIn對象和Room.first.check_ins
返回與第一個Room關聯的CheckIns集合,我需要做什麼?
任何幫助將非常感激。
查理
很好的答案 - 非常具有描述性!我錯過的主要想法是我需要通過遷移將user_id和room_id列添加到check_in。另外,感謝關於':through'的提示 - 這會派上用場! – candrews 2011-03-11 18:49:14