我有两张桌子:船只和航程。一艘船可以有很多次航行,但是一次航行可能只有一艘船。
在RoR中,船模型有一个has_many:voyages,Voyage模型设置为belongs_to:ship
我可以使用与此类似的代码在视图中显示ship表中的所有字段而不会出现任何问题:
<%= @ship_data.id %>
我现在正试图在视图中显示航行表中的一条信息。
如果我这样做:
<%= @ship_data.voyages %>
我能够提取ActiveRecord条目,即:
#<Voyage::ActiveRecord_Associations_CollectionProxy:0x00000006639a10>
如果我追加.to_json,我可以提取包含所有数据的json文件。
我如何在我的视图中显示特定字段,我尝试过的内容包括:
<%= @ship_data.voyages.id %>
和
<%= @ship_data.voyages, :id %>
但两个错误都在我身上。注意:虽然这种关系是一艘船到多次航行 - 目前每艘船只有一次航行。
我会承认自己是一名RoR新手!
答案 0 :(得分:1)
@ship_data.voyages
是ActiveRecord relation。它就像一系列物品。您可以获得每个项目的一系列ID:
<%= @ship_data.voyages.pluck(:id) %>
或循环遍历数组:
<% @ship_data.voyages.each do |voyage| %>
<%= voyage.id %>
<% end %>
或仅获得first
航程:
<%= @ship_data.voyages.first.id %>