Ruby on Rails - 显示has_many表中的字段

时间:2015-04-02 22:41:41

标签: ruby-on-rails ruby ruby-on-rails-3 sqlite activerecord

我有两张桌子:船只和航程。一艘船可以有很多次航行,但是一次航行可能只有一艘船。

在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新手!

1 个答案:

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