отобразить значения модели B, принадлежащей модели A, на странице индекса модели A - PullRequest
0 голосов
/ 28 декабря 2011

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

Проблема:

Я добавляю название автомобиля для бывшей BMW, затем я могу добавить модели автомобилей для экс-3 серии и выбрать, что это принадлежит BMW. Работает хорошо в разных представлениях, но я хочу, чтобы он отображал модели машин в индексном представлении имени машины, что-то вроде этого

в www.whwhatdomain.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.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..

если понадобится какая-то другая информация, я поделюсь ею. Спасибо за ваше время.

1 Ответ

2 голосов
/ 28 декабря 2011

Попробуйте этот код в вашем файле 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?Не будет ли проще присвоить атрибут имени классу Car?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...