Я хочу отображать только одну строку в таблице. Мой контроллер для этого выглядит так:
def Add
@item= Item.find(params[:id])
end
и моя строка таблицы выглядит так. Не существует ли замена метода. .each
просто отобразить одну запись?
<% @item.each do |item| %>
<tr>
<td><%= item.name %></td>
<td><%= item.price %></td>
<td><%= item.quantity %></td>
<td><%= item.quantity * item.price %></td>
<td>
<% link_to("update", '#', :class => 'action update') %>
<% link_to("X", '#', :class => 'action delete') %>
</td>
</tr>
<% end %>
В этом случае вам не нужен цикл. U может непосредственно создавать таблицу, подобную этой
<tr>
<td><%= @item.name %></td>
<td><%= @item.price %></td>
<td><%= @item.quantity %></td>
<td><%= @item.quantity * @item.price %></td>
<td>
<% link_to("update", '#', :class => 'action update') %>
<% link_to("X", '#', :class => 'action delete') %>
</td>
</tr>
@item= Item.find(params[:id])
Здесь @item будет объектом класса Item. Таким образом, вам не нужно переводить объект на "каждый". Вы можете напрямую обращаться к атрибуту Item объектом @item.
@item.name
@item.price
@item.quantity.....