我想保存每次不同提交按钮发送的参数,以便我可以区分它是已发布还是刚保存。
在我看来,
<%= form_for @post do |f| %>
...
<%= f.submit 'Draft', name: "status", value: "draft" %>
<%= f.submit 'Publish', name: "status", value: "publish" %>
<% end %>
当我用“草稿”按钮提交时,我得到如下参数
"post"=>{"title"=>"bar", "body"=>"foo"},
"status"=>"draft",
"controller"=>"posts",
"action"=>"create"}
我的控制器
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
if @post.save
redirect_to @post
else
render 'new'
end
end
private
def post_params
params.require(:post).permit(:title, :body).merge(:status, params[:status])
end
然后我出错了,
wrong number of arguments (2 for 1)
我做错了什么,如何通过草稿/发布参数保存到数据库中?
答案 0 :(得分:0)
.merge只接受一个参数,这是错误的参数错误来自的地方。尝试合并params [:status]。