Как получить массив из базы данных в Rails3, даже если есть только одна запись? - PullRequest
1 голос
/ 02 января 2011

В Rails3 у меня есть следующая строка:

@messages = Message.where("recipient_deleted = ?", false).find_by_recipient_id(@user.id)

На мой взгляд, я перебираю @messages и распечатываю каждое сообщение, как таковое:

<% for message in @messages %>
    <%= message.sender_id %>
    <%= message.created_at %>
    <%= message.body %>
<% end %>

Этоработает безупречно, когда есть несколько сообщений.

Проблема в том, что когда у меня есть одно сообщение, я получаю сообщение об ошибке: undefined method each'`

Как заставить рельсывсегда возвращать массив сообщений, даже если есть только одно сообщение, чтобы each всегда работал?

Спасибо!

1 Ответ

4 голосов
/ 02 января 2011

Попробуйте это:

@messages = Message.where(recipient_deleted => false, :recipient_id => @user.id)

@messages.each do |message|
  <%= message.sender_id %>
  <%= message.created_at %>
  <%= message.body %>
end

Я думаю, что ты проблема в том, что ты действительно странная вещь Оба должны быть частью предложения where

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