强参数,不允许的参数

时间:2014-09-29 21:33:59

标签: ruby ruby-on-rails-4

我遇到了强参数的问题。

我的置换参数是:

def post_params
    params.require(:post).permit(:content, :user_id, :topic_id).merge(:user_id => get_user.id)
end

传递的参数是:

{"utf8"=>"✓",
"authenticity_token"=>"5+OEnLgihamJC37BSn4r/spoiRmccJzHhe6eaeC2Fuc=",
"post"=>{"topid_id"=>"10",
"content"=>"awfawfaw"}}

创建功能是:

def create
    post = Post.new(post_params)
    if post.valid? && post.save
       redirect_to :controler => :topic, :action => :show, :topic => post.topic.id
    end
end

enter image description here

这是控制台中的错误。我想知道为什么它不允许topic_id

1 个答案:

答案 0 :(得分:0)

你的准许参数中有拼写错误:

你拥有的是:

def post_params
    params.require(:post).permit(:content, :user_id, :topic_id).merge(:user_id => get_user.id)
end

应该是:

def post_params
    params.require(:post).permit(:content, :user_id, :topid_id).merge(:user_id => get_user.id)
end

但这取决于您的模型您的模型中的属性名称。您必须在表单中以拼写形式更改表单,或者您必须在其他地方更改。