rails在html中渲染数据库信息

时间:2017-02-21 09:32:00

标签: ruby-on-rails haml

我有一个简单的show方法,它必须呈现对话中的所有消息。

我的代码中的所有东西都是基本的,我有一个show方法转到这个HTML(show.html.haml):

%section#list
  =  @conversation.messages.each do |message|
    .row
      = message.content
      = message.participant.user_id

当我去这个节目页面时,我有我的内容,但我也有一个来自数据库的随机行(我的HTML不包含其他内容)。这是我得到的:

This is a test 1 

[#< MyghtDefaultMessenger::Message id: 1, content: "This is a test", deleted: false, participant_id: 1, created_at: "2017-02-13 14:52:45", updated_at: "2017-02-13 14:52:45" >] 

(我在&lt;和&gt;标志旁边添加了一个空格,其他SO只会渲染,但它们不在原文中。[#])

这是我在conversation_controller中的控制器方法:

def show
  @conversation.messages.order(:created_at)
end

唯一的特点是我的对话有很多参与者,我的参与者有很多信息,我通过参与者得到了对话的信息。

1 个答案:

答案 0 :(得分:1)

您需要使用=

更改-
  • =打印评估代码的结果
  • -只会对其进行评估

将代码更改为

%section#list
  - @conversation.messages.each do |message|
    .row
      = message.content
      = message.participant.user_id

您获得的第二个输出是在评估@conversation.messages.each do |message|后返回的结果。

注意:只要您需要进行评估,请使用-eachif - else,以haml分配变量