Rails用于遍历2个主要细节关系的语法

时间:2014-03-31 16:50:06

标签: ruby-on-rails-4

Rails Learner Driver Q。

数据库实体 - 2个主要详细信息关系

每个城市都有很多酒店 每个酒店都有__房间

每间客房属于酒店 每个酒店都属于城市

我在酒店房间醒来 - 但我怎么知道我在哪个城市呢?

@ Room.hotel.name =酒店名称

但是我可以使用什么语法来引用“我所在的城市?”

为了遍历2个主要细节关系?

在Java中很简单: string cityName = room.gethotel()。getcity()。getname()

在Rails中 - 这是通过使用:through =>实现的。 :酒店?

或者仅用于定义多对多关系。

对我来说,最好的答案是指向一本贯穿所有这一切的书中的章节?

非常感谢!!

1 个答案:

答案 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;

=============================================== ====================