当我提交此表单时,会创建一条新记录,但不会添加这些值。尝试了一些不同的事情,但没有任何工作
评论控制器
Observer
端
评论视图(只是报告表格)
def report
@report_comment = ReportComment.new
if @report_comment.save(report_comment_params)
redirect_to root_path
else
render 'static_pages/home'
end
end
private
def report_comment_params
params.require(:report_comment).permit(:guide_id, :submitted_by, :comment_id)
记录传递的参数
<% @report_comment = ReportComment.new %>
<% @guide = Guide.friendly.find(params[:guide_id]) %>
<% if current_user.nil? %>
<% user_id = 0 %>
<% else %>
<% user_id = current_user.id %>
<% end %>
<%= form_for([@report_comment], url: comments_report_path, method: :post) do |f| %>
<%= f.hidden_field :guide_id, value: @guide.id %>
<%= f.hidden_field :submitted_by, value: user_id %>
<%= f.hidden_field :comment_id, value: comment.id %>
<%= f.submit "Report" %>
<% end %>
不确定为什么不保存这些值。我也可以在 Parameters: {"utf8"=>"✓", "authenticity_token"=>"0XMjwzMlMLSwqpImXpjTRWd8yHUP/ERTkvnzd9rWIkSA94l9f9bCQdODXrC3SyvmfJjuW/N3zkp5pVZAf+0D+w==", "report_comment"=>{"guide_id"=>"1", "user_id"=>"1", "comment_id"=>"1"}, "commit"=>"Report"}
下添加@report_comment.update(guide_id: params[:report_comment][:guide_id], submitted_by: params[:report_comment][:submitted_by], comment_id: params[:report_comment][:comment_id])
,但这并不理想,只是让它们直接从表单提交中保存。
答案 0 :(得分:1)
将params分配给新方法,然后保存
def report
@report_comment = ReportComment.new(report_comment_params)
if @report_comment.save
redirect_to root_path
else
render 'static_pages/home'
end
end
答案 1 :(得分:1)
将params值传递给.new Instantiate方法。你不能通过params来保存方法
'%s'.__mod__
或者你可以用户创建方法而不是保存
<method-wrapper '__mod__' of str object at 0x7f92ed464690>
答案 2 :(得分:0)
将params传递给新
@report_comment = ReportComment.new(report_comment_params)
if @report_comment.save
redirect_to root_path
else
render 'static_pages/home'
end
答案 3 :(得分:0)
您的控制器错误,您应该传递ReportComment.new
中不在.save
中的参数:
def report
@report_comment = ReportComment.new(report_comment_params)
if @report_comment.save
redirect_to root_path
else
render 'static_pages/home'
end
end
如果在模型中添加验证,那就更好了。