1

仍然停留在https://stackoverflow.com/questions/19156673/create-in-multiple-models-with-one-form-in-a-has-many-through-association但现在尝试不同的策略。我只想让相关模型正确显示。

我应该提到这是一个 has_many through 关系。微型通过生产有许多制造商。

这就是我的微型显示器试图展示的内容。三个对象来自它自己的模型,一个来自制造商模型。

 <%= @miniature.name %><br />
   Material: <%= @miniature.material %><br />   
   Manufacturer: <%= @miniature.manufacturers.select(:name).to_a %><br />
   Release date: <%= @miniature.release_date.strftime("%d %b %Y") unless @miniature.release_date.blank? %><br />
   <%= link_to "Edit this miniature listing", edit_miniature_path %>

它显示的是

Miniature 1 
Material: China 
Manufacturer: [#<Manufacturer id: nil, name: "Cytt">, #<Manufacturer id: nil, name: "Yenn">] 
Release date: 02 Mar 2002 Edit this miniature listing

我该如何改写<%= @miniature.manufacturers.select(:name).to_a %>它只返回两个名字而不是他们周围的所有废话?

至少它证明我的关联是有效的,即使我不能让它们通过嵌套表单创建。

4

1 回答 1

6
<%= @miniature.manufacturers.map(&:name).join(', ') %>

或者

<% @miniature.manufacturers.each do |manufacturer| %>
  <%= manufacturer.name %>
  ...
<% end %>
于 2013-10-03T16:10:10.010 回答