Rails 3 - как работать с данными, полученными из базы данных - PullRequest
0 голосов
/ 16 августа 2011

Я загружаю из базы данных единственную строку.Данные хранятся в переменной (например, @data).В связи с этим, если я хочу отобразить значение, полученное из базы данных, я должен сделать следующее:

    <% @data.each do |d| %>
        <%=d.name %>
    <%end%>

И я хотел бы спросить вас - существует ли какой-либо лучший способ?Я думаю, что это немного глупо для единственной строки, чтобы использовать цикл ... Я попробовал что-то вроде

<%= @data.name %>
OR
<%= @data.each.name %>

Но в обоих случаях я получил сообщение об ошибке о неправильном синтаксисе ...

Итак, на мой вопрос - возможно ли получить отображаемые данные немного более элегантно?

РЕДАКТИРОВАТЬ: мой запрос: @ data = Car.includes (: tyres) .where ("param1 =? ", params [: param1])

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Я думаю, что вы загружаете .all вместо .first.

В вашем контроллере,

@data = Data.where(:some => 'condition').first

или

@data = Data.find(params[:id])
1 голос
/ 16 августа 2011

Если вы загрузили более одной модели (строки), то цикл является естественной конструкцией для отображения каждого значения. Если вы действительно настроены на использование одной строки, вы можете использовать некоторые из перечисленных в Ruby понятий:

<%= @data.map(&:name).join(" ") -%>
...