ActiveRecord :: Base.connection.execute дублирует вывод SQL - PullRequest
2 голосов
/ 05 июля 2010

Я новичок в rails, и мне нужно было выполнить некоторый SQL-запрос и вывести его на экран. В моем контроллере я использовал что-то вроде "@prob = ActiveRecord::Base.connection.execute("...")", а затем просто отображал @prob в представлении. Однако вывод в представлении продолжает поступать дважды, как результат 0 имя столбца результата.

Запрос sql был

 @cprob = ActiveRecord::Base.connection.execute("SELECT DISTINCT cause FROM pages LIMIT 2")

и моя среда приложения

Ruby version    1.8.7 (i386-mingw32)
RubyGems version    1.3.6
Rack version    1.0
Rails version   2.3.5
Active Record version   2.3.5
Active Resource version 2.3.5
Action Mailer version   2.3.5
Active Support version  2.3.5
Application root    C:/Users/Prateek/BitNami RubyStack projects/noc
Environment development
Database adapter    sqlite3
Database schema version 20100616055513

Обновление: - Я обнаружил, что oputput для ActiveRecord :: Base.connection.execute на самом деле является массивом, содержащим хэши, например {: 0 => queryresult: columnname => queryresult}

так, как я могу получить только результат запроса из этого

1 Ответ

4 голосов
/ 05 июля 2010

Выполнено

`@users = ActiveRecord::Base.connection.execute("SELECT * FROM users")` 

в моем контроллере и получите имена пользователей как

<% @users.each do |user| %> <td><%=h user[1] %></td> <% end %>

в поле зрения

Надеюсь, это поможет вамчтобы решить вашу проблему

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