2016-07-22 77 views
2

在我的控制器的create方法,試圖要求的設置和允許的參數失敗:的ActionController ::參數的要求'方法返回一個字符串

params.fetch(:xyz, {}).require(:name).permit(:local) 

回報

undefined method `permit' for "EXAMPLE":String Did you mean? print 

PARAMS原本是

"utf8"=>"✓", 
"authenticity_token"=>"...", 
"xyz"=>{"name"=>"EXAMPLE", "local"=>""}, 
"commit"=>"Create xyz"} 

我甚至試圖創建新的Parameters對象,但沒有改變:

​​3210

有人可以點亮這個嗎?我是Rails的新手,對不起。

+0

@spickermann我從html表單清理輸入。 Rails教程似乎也這樣做。這是錯的嗎? –

回答

0

正確的語法是:

params.require(:xyz).permit(:local, :name) 
+0

刪除抓取給了我'ActionController :: ParameterMissing在XyzController#create'中。對不起,我是新手。 –

+0

這意味着在'params'中找不到':xyz'。你能不能展示你的整個控制器行動? – spickermann

0

我在Rails guides - Strong Parameters接過來一看,它給出瞭如何獲得PARAMS一個很好的例子和說明。所以你的代碼看起來應該是這樣的:

def xyz_params 
    params.require(:xyz).permit(:name, :local) 
end 
相關問題