У меня есть модель клиентов:
class Customer < ActiveRecord::Base
has_many :phone_numbers
end
и модель номера телефона
class PhoneNumber < ActiveRecord::Base
belongs_to :customer
end
На мой взгляд, я делаю это:
<table id="customerSearch">
<tr>
<th>Last name</th>
<th>First name</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @customers.each do |customer| %>
<tr>
<td><%= customer.last_name %></td>
<td><%= customer.first_name %></td>
<td><%= link_to 'Show', customer %></td>
<td><%= link_to 'Edit', edit_customer_path(customer) %></td>
</tr>
<% end %>
</table>
и вот мой контроллер для этого действия:
def index
@customers = Customer.find(:all, :limit => 10, :order => 'last_name')
flash.now[:notice] = 'Enter customer last or first name. Fields are case-sensitive.'
end
В таблице, на мой взгляд, я хочу показать первый номер телефона, найденный для каждого клиента, указанного в столбце номера телефона, например:
Last Name first Name Phone
Smith John 3258889322
Jones Davey 3412555232
Я придумал несколько решений этой проблемы, но ни одно из них не было очень изящным. Для этого должен существовать «Rails Way», который действительно притягателен, поскольку для разработчика веб-приложений это обычная ситуация.