Rails Learner Driver Q。
数据库实体 - 2个主要详细信息关系
每个城市都有很多酒店 每个酒店都有__房间
每间客房属于酒店 每个酒店都属于城市
我在酒店房间醒来 - 但我怎么知道我在哪个城市呢?
@ Room.hotel.name =酒店名称
但是我可以使用什么语法来引用“我所在的城市?”
为了遍历2个主要细节关系?
在Java中很简单: string cityName = room.gethotel()。getcity()。getname()
在Rails中 - 这是通过使用:through =>实现的。 :酒店?
或者仅用于定义多对多关系。
对我来说,最好的答案是指向一本贯穿所有这一切的书中的章节?
非常感谢!!
答案 0 :(得分:0)
=============================================== ==========
http://guides.rubyonrails.org/association_basics.html#the-has-one-through-association
=============================================== ==========
has_one :city, through: :hotel
<%= @room.city.name %>
=============================================== ==========
city.rb class City&lt;的ActiveRecord :: Base的 has_many:酒店 端
hotel.rb class&lt;的ActiveRecord :: Base的 has_one:city has_many:房间 端
room.rb class&lt;的ActiveRecord :: Base的 has_one:酒店 has_one:city,through :: hotel 端
views / rooms
show.html.erb &lt;%= @ room.city.name%&gt;
index.html.erb &lt;%= room.city.name%&gt;
=============================================== ====================