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