因此我在创建评论时遇到了ruby on rails问题。我没有收到任何错误,但我的评论也没有显示出来。我做错了什么?我试图在过去2小时内调试它:X
我的show.html.erb
<h2>Comments</h2>
<%= @article.comments.each do |comment| %>
<strong><%= comment.body %></strong> <br />
<hr />
<% end %>
<%= form_tag :action => "comment", :id => @article %>
<%= text_area "comment", "body" %><br />
<%= submit_tag "Comment" %>
</form>
我的文章控制器:
def comment
Article.find(params[:id]).comments.create(params[comment_params])
flash[:notice] = "Added your comment"
redirect_to :action => "show", :id => params[:id]
end
和我的路线
resources :articles do
post 'comment', on: :member
end
请告诉我,为什么它不能保存我的文字?当我创建评论时,我检查它,并看到:
#<Comment id: 21, email: nil, body: nil, created_at: "2014-04-27 13:27:40", updated_at: "2014-04-27 13:27:40", user_id: nil, article_id: 3>]
不要介意user_id:nil,我是偶然创建的,并打算删除它^^一旦我们解决了这个问题^^
答案 0 :(得分:0)
问题出在这一行
Article.find(params[:id]).comments.create(params[comment_params])
应该是这样的
Article.find(params[:id]).comments.create(comment_params)
答案 1 :(得分:0)
您的问题是尝试使用强参数。
您目前正在做
def comment_params
params.require(:comment).permit(:body)
end
params[comment_params]
你想做的事情就像是
def comment_params
require(:comment).permit(:body)
end
params.comment_params