Rails数据库查询

时间:2014-06-28 20:54:23

标签: mysql ruby-on-rails ruby

我正在尝试从数据库中收集信息,然后通过flash将该信息传递给我的视图。不幸的是,信息是在ActiveRecord :: Relation中格式化的,而不是我能读取的任何格式。

控制器查询

@message = Message.where(:all).limit(4).order(id: :desc).only(:order,:where)    
    flash[:response] = @message
    redirect_to (:back)

如果我做的话

@message = Message.where(:all).limit(4).order(id: :desc).only(:order,:where)    
    flash[:response] = @message.first.mess
    redirect_to (:back)

为了尝试获取mess列中的第一个返回值,我得到一个未定义的方法错误。我一直试图找到一个教程,告诉我一旦我的查询运行后如何获取信息,但我最近没有得到Rail的教程。我感谢你们给予的任何帮助。在我这样做之后,我将尝试在视图方面格式化4种不同的结果。

1 个答案:

答案 0 :(得分:1)

消息列表:

@messages = Message.order(id: :desc).limit(4)

这:only(:order,:where)取消您的limit(4)(为什么?)

@messages现在是一个activerecord协会,不适合输出....所以,如果你有4条消息,你可以做到:

if @messages.any? # maybe no messages come out
    flash[:response] = @messages.map(&:mess).join('<br>') # add an html newline between them
end
redirect_to :back