如果只有一条记录,如何从Rails3中的数据库中获取数组?

时间:2011-01-02 01:36:48

标签: ruby-on-rails ruby-on-rails-3

在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始终有效,我如何强制rails始终返回一组消息?

谢谢!

1 个答案:

答案 0 :(得分:4)

试试这个:

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

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

我认为你的问题在于你是嵌套的东西真的很奇怪。两者都应该是where子句

的一部分