rails 在 html 中呈现数据库信息

rails rendering database information in html

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

我的代码中的一切都是基本的,我有一个用于此 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" >] 

(我在 < 和 > 符号旁边添加了一个空白 space 否则 SO 只会呈现,但它们不在原始位置。[#] )

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

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

唯一的特点是我的对话有很多参与者,我的参与者有很多消息,我通过参与者获取对话的消息。

您需要将 = 更改为 -

  • = 打印评估代码的结果
  • - 只会评估它

将代码更改为

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

您得到的第二个输出是 @conversation.messages.each do |message| 计算后返回的结果。

注意: 每当您只需要评估例如eachif - else、在 haml 中分配变量