2014-09-29 171 views
0

我遇到強參數問題。強參數,不允許的參數

我的置換參數是:

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

+3

你有一個錯字。你的日誌顯示'topid_id'而不是'topic_id'。 – mccannf 2014-09-29 21:36:50

+0

上帝保佑你的眼睛的細節;) – 2014-09-29 21:51:14

+0

我*真的*幫助我們幫助你,當你不使用屏幕抓取錯誤或文字。相反,複製並粘貼文本,確保其格式合理可讀。 – 2014-09-29 22:52:20

回答

0

你有一個錯字在你的允許PARAMS:

你所擁有的是:

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 

但是這取決於你的模型是什麼名字屬性在你的模型中。要麼你必須改變表單中的錯字形式,要麼你必須改變其他地方。