型號: 帖子和用戶軌道4個強參數 - 處理丟失的模型PARAMS哈希
帖子belongs_to的:用戶
用戶的has_many:帖子
簡單。
假設有一些用戶存在,我們訪問Post的編輯頁面。
<%= form_for @post do |f| %>
...
<% User.all.each do |user| %>
<div><%= f.radio_button "user_id", user.id %></div>
<% end %>
...
郵政的控制器利用軌道4點強的參數。
params.require(:post).permit(:user_id)
假設編輯帖子表單只有單選按鈕作爲字段。
問題:ActionController :: ParameterMissing異常被拋出。 param not found:post
原因是Post params散列從來沒有被創建,導致上述異常被拋出。空單選按鈕,例如與空文本字段不同,不會觸發要創建的模型的參數哈希。
如果Post模型要求user_id有效,該怎麼辦?當然,人們會希望再次呈現視圖,以及郵政無法保存的原因。
問題:遵循Rails約定,處理這種情況的優雅方法是什麼?
UPDATE:
集思廣益這個進一步,我敢肯定,有可能是大量的,其產生這一問題的其他情形;它不一定對應於單選按鈕。
我有一個奇怪的問題......我得到的模型哈希沒有找到相同的參數,但是我測試的是一個form_for @user和兩個用戶的字段,就是這樣。我的網址恰好使用用戶名,我會認爲它缺少身份證或其他東西。但我有我的項目的另一部分做同樣的事情。唯一的區別是我從頭建立這種形式,而不是通過腳手架... – dtc