2015-04-02 62 views
0

我有两张表:船舶和航行。一艘船可以有很多航程,但一次航行可能只有一艘船。Ruby on Rails - 从has_many表中显示字段

在RoR的船舶模型具有的has_many:航行和航程模型设置为belongs_to的:船

我可以在视图中显示所有从船表中的字段,而无需使用类似于此代码的任何问题:

<%= @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

@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 %> 
+0

这正是我所需要的东西。谢谢!一旦定时器耗尽,我会在几分钟内接受答案。 – 2015-04-02 22:51:06