Ruby 在 Rails - 显示来自 has_many table 的字段

Ruby on Rails - Show field from has_many table

我有两个 tables:Ships 和 Voyages。一艘船可以有很多航次,但一个航次可能只有一艘船。

在 RoR 中,船舶模型有一个 has_many :voyages 并且 Voyage 模型设置为 belongs_to: ship

我可以在视图中显示船舶 table 中的所有字段,而不会出现任何问题,使用类似于以下的代码:

<%= @ship_data.id %>

我现在正尝试在视图中显示来自航行 table 的一条信息。

如果我这样做:

<%= @ship_data.voyages %> 

我能够提取 ActiveRecord 条目,即:

#<Voyage::ActiveRecord_Associations_CollectionProxy:0x00000006639a10>

如果我附加 .to_json 我可以提取一个包含所有数据的 json 文件。

我将如何在我的视图中显示特定字段,我尝试过的事情包括:

<%= @ship_data.voyages.id %>

<%= @ship_data.voyages, :id %>

但我都出错了。注意:虽然关系是一艘船到许多航次 - 目前每艘船只有一次航程。

我承认自己是 RoR 的新手!

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