INTRO
模型A
carname.rb
class Carname < ActiveRecord::Base
belongs_to :car
has_many :carmodels, :dependent => :destroy
...
模型B
carmodel.rb
class Carmodel < ActiveRecord::Base
belongs_to :carname
belongs_to :car
...
carname字段:id,name
carmodel字段:id,name,carname_id
问题:
我为前宝马添加了一个汽车名称,然后我可以为前3系列添加汽车模型并选择它属于宝马。在不同的视图中运行良好,但我希望它在carname的索引视图中显示carmodel,类似这样
在www.whateverdomain.com/carnames
BMW
3 series
5 series
7 series
Mercedes
E class
S class
C class
我展示了卡通名,并不是什么大不了的事:
<% @carnames.each do |carname| %>
<%= carname.name %>
<% end %>
但是我想不出如何为它添加模型nex。 在carmodels索引视图中,我设法显示每个carmodel,其carname是car_odel旁边的car_ode
<% @carmodels.each do |carmodel| %>
<%= carmodel.name %>
<%= carmodel.carname.name %>
<%= link_to 'Edit', edit_carmodel_path(carmodel) %>
<%= link_to "Delete", carmodel, :confirm => 'Are you sure?', :method => :delete %>
<% end %>
所以在这个屏幕上的html看起来像
3 series | BMW
5 series | BMW
7 series | BMW
C class | Mercedes
E class | Mercedes
etc..
如果需要任何其他信息,我会分享。谢谢你的时间。
答案 0 :(得分:2)
在carnames / index.html.erb文件中尝试此代码:
<% @carnames.each do |carname| %>
<h1><%= carname.name %></h1>
<ul>
<%- carname.carmodels.each do |carmodel| %>
<li><%= carmodel.name %></li>
<%- end %>
</ul>
<% end %>
它会将每个车牌及其车型添加为无序列表。
编辑:如果要显示carmodel.name |你可以做的carname.name:
<% @carnames.each do |carname| %>
<ul>
<%- carname.carmodels.each do |carmodel| %>
<li><%= carmodel.name %> | <%= carname.name %></li>
<%- end %>
</ul>
<% end %>
注意:为什么Carname属于汽车?将名称属性分配给Car类会不会更容易?