如何从视图中隐藏数据库记录?

时间:2016-05-20 09:59:44

标签: ruby-on-rails ruby

我是Ruby On Rails的初学者,我正在阅读" Rails入门"现在。

我为文章和评论创建了模型和控制器,一切正常,我能够添加评论并且它们出现在文章视图中,但除此之外我还看到了这种格式的数据库记录:

  [# Comment id: 1, commenter ... updated_at: "2016-05-20 09:26:25"]

为什么他们出现以及如何隐藏它?文章代码视图show.html.erb:

<p>
  <strong>Title:</strong>
  <%= @article.title %>
</p>

<p>
  <strong>Text:</strong>
  <%= @article.text %>
</p>

<h2>Comments</h2>
<%= @article.comments.each do |comment| %>
  <p>
    <strong>Commenter:</strong>>
    <%= comment.commenter %>
  </p>
  <p>
    <strong>Comment:</strong>>
    <%= comment.body %>
  </p>
<% end %>

<h3>Add a comment</h3>
<%= form_for([@article, @article.comments.build]) do |f| %>
  <p>
    <%= f.label :commenter %>
    <%= f.text_field :commenter %>
  </p>
  <p>
    <%= f.label :body %>
    <%= f.text_area :body %>
  </p>
  <p>
    <%= f.submit %>
  </p>
<% end %>

<%= link_to 'Edit', edit_article_path(@article) %>
<%= link_to 'Back', articles_path %>

2 个答案:

答案 0 :(得分:1)

而不是:

<%= @article.comments.each do |comment| %>

应该是:

<% @article.comments.each do |comment| %>

<%= %>曾用于呈现某些内容。而且您正在迭代一个对象,因此您需要使用<% %>

答案 1 :(得分:1)

改变这个:

<% @article.comments.each do |comment| %>

<%=所做的是显示他正在处理的任何数据。如果你做<% @article.comments.each do |comment| %>它也将处理数据,但他不会显示任何内容。然后你可以显示你想要的任何东西:

<%= comment.commenter %>
<%= comment.body %>