выполнить SQL-запрос и перебрать набор результатов в рельсах - PullRequest
3 голосов
/ 31 октября 2011

В моем приложении rails у меня есть следующая функция на одной из страниц моего контроллера.

def tree
@jstree = ActiveRecord::Base.connection.execute("Select sequence, depth, node, imageid, range from.....several joins")
end

Теперь я хочу просмотреть список результатов и отобразить последовательность только на странице просмотра tree.html.erb.Я пробовал следующий код, похоже, он не работает.

<% @jstree.each do |tree| %>
<%= tree.sequence %>
<% end %>

Я получаю сообщение об ошибке: undefined method 'sequence' for #<Array:0x60e0088>.

Есть ли способ циклического просмотра набора результатовSQL-запрос выполняется и отображает значение каждого столбца?

Большое спасибо за все предложенные предложения:)

Ответы [ 2 ]

5 голосов
/ 12 декабря 2012

Сохранение того же синтаксиса, что и у OP

<% @jstree.each do |tree| %>
<%= tree[0] %>
<% end %>

выполнит то, что вы искали.

3 голосов
/ 31 октября 2011

Вы получаете эту ошибку, потому что то, что вы получаете в @jstree, является необработанным результатом адаптера БД.Если вы хотите запросить некоторые объекты, выполнив необработанные запросы SQL, используйте find_by_sql.Пример:

Client.find_by_sql("SELECT * FROM clients INNER JOIN orders ON clients.id = orders.client_id ORDER clients.created_at desc")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...