Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 每个循环在循环后输出一个不需要的记录转储_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 每个循环在循环后输出一个不需要的记录转储

Ruby on rails 每个循环在循环后输出一个不需要的记录转储,ruby-on-rails,ruby,Ruby On Rails,Ruby,我只是在学习一些rails教程,并构建了一个基本的CRUD应用程序(一个带有评论系统的博客)。 我的问题是,当我循环浏览帖子的每条评论时,在每次循环之后都会显示一个恼人的记录转储。 看起来好像有一些垃圾,但我找不到原因。 以下是循环的代码: <h3>Comments</h3> <%= @post.comments.each do |comment| %> <div class="well"> <p><strong><

我只是在学习一些rails教程,并构建了一个基本的CRUD应用程序(一个带有评论系统的博客)。 我的问题是,当我循环浏览帖子的每条评论时,在每次循环之后都会显示一个恼人的记录转储。 看起来好像有一些垃圾,但我找不到原因。 以下是循环的代码:

<h3>Comments</h3>
<%= @post.comments.each do |comment| %>
<div class="well">
  <p><strong><%= comment.username %></strong>: <%= comment.body %></p>
</div>
<%= link_to "[X]", [comment.post, comment], method: :delete, data: {confirm: 'Are you sure?'}, :class => 'btn btn-danger' %>
<hr>
<% end %>
注释

“btn btn危险”%>
以下是注释控制器:

class CommentsController < ApplicationController


  def create
    @post = Post.find(params[:post_id])
    @comment = @post.comments.create(comment_params)
    redirect_to post_path(@post)
  end

  private def comment_params
    params.require(:comment).permit(:username, :body)
  end
  def destroy
    @post = Post.find(params[:post_id])
    @comment = @post.comments.find(params[:id])
    @comment.destroy
    redirect_to post_path(@post)
  end


end
class CommentsController
下面是一个屏幕截图:


非常感谢您的帮助

这是
每个
方法返回的
可枚举
。改变

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



只是因为你不想看到它是
每个
方法返回的
可枚举的
。改变

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



只是因为您不想看到这里发生的事情,您正在使用
,这是一个ERB标记,它将其内容评估为Ruby,然后将其打印到页面上。但是您不想打印出
@post.comments.each do | comment |
的值;你只是想评估一下。这就是
标签(no
=
)的作用

您看到文本的原因是
隐式地调用
以查看其内容


这个答案有一个完整的ERB标签类型列表:

这里发生的事情是您正在使用
,这是一个ERB标签,它将其内容评估为Ruby,然后将其打印到页面上。但是您不想打印出
@post.comments.each do | comment |
的值;你只是想评估一下。这就是
标签(no
=
)的作用

您看到文本的原因是
隐式地调用
以查看其内容


这个答案有一个完整的ERB标签类型列表:

哦,太简单了,谢谢!这到底是为了什么,可以用来代替inspect吗?它是返回的,因为enumerable的方法是可链接的哦,那太简单了,谢谢!这样做的目的是什么?是否可以将其用作inspect的替代品?之所以返回,是因为enumerable的方法是可链接的。不要忘记将问题标记为已回答。不要忘记将问题标记为已回答。