Ruby on rails评论帖子

时间:2017-09-03 08:49:46

标签: ruby-on-rails

我正在创建一个模型来为帖子添加评论。我运行服务器时没有错误消息但是当我点击"提交"填充文本框后按钮,没有任何反应。它不会创建注释(也没有错误消息)。现在我被卡住了。可以查看我的程序并告诉我编码错误吗? 非常感谢您的支持

comments_controller.rb

class CommentsController < ApplicationController
    def create
      @post = Post.find(params[:post_id])
      @comment= @post.comments.create(params[:comment].permit(:comment))

     if @comment.save
        redirect_to post_path(@post)
     else
        render 'new'
     end
   end
end

评论/ _form.html.erb

<%= simple_form_for [@post, @post.comments.build] do |f| %>
  <%= f.input :comment %>
  <%= f.submit %>
<% end %>

文章/ show.html.erb

<h1><%= @post.title %></h1>
<p><%= @post.content %></p>

<h3> Reply to thread </h3>
<%= render "comments/form" %>

2 个答案:

答案 0 :(得分:0)

您没有在show.html.erb中呈现评论,可能会添加以下内容:

<h3>Comments</h3>
<% @post.comments.each do |comment| %>
  <p><%= comment.comment %></p>
<% end %>

comment模型设置Comment字段也许非常令人困惑,可能会将其更改为content或更有意义的字段。

答案 1 :(得分:0)

我可以添加到此answer的一件事是create方法会自动保存新模型,因此无需再次运行.save我觉得最好放一下像

class CommentsController < ApplicationController
  def create
    @post = Post.find(params[:post_id])

    if @post.comments.create(params[:comment].permit(:comment))
      redirect_to post_path(@post)
    else
      render :new
    end
  end
end

或者保留问题并使用.build代替.create