モデルを欠落取り扱い: 投稿やユーザーRailsの4つの強力なパラメータ - モデルのparamsハッシュ
ポストbelongs_toの:ユーザー
ユーザーにhas_many:ポスト
シンプル
。少数のユーザーを想定しが存在し、我々はポストの編集ページをご覧ください。
<%= form_for @post do |f| %>
...
<% User.all.each do |user| %>
<div><%= f.radio_button "user_id", user.id %></div>
<% end %>
...
ポストのコントローラーは、Railsの4つの強力なパラメータを利用しています。
params.require(:post).permit(:user_id)
編集ポストフォームにはフィールドとしてラジオボタンしかないとします。
問題:ActionController :: ParameterMissing例外がスローされます。 PARAM見つかりません:ポストのparamsハッシュいる投稿
理由は、上記の例外がスローされるように引き起こして、作成されることはありません。たとえば、空のテキストフィールドとは異なり、空のラジオボタンは、モデルのパラメータハッシュを作成するようトリガーしません。
投稿モデルでuser_idが有効である必要がある場合はどうなりますか?確かに、投稿を保存することができない理由でビューを再度レンダリングしたいと思うでしょう。
質問:規則をレールに付着しながら、このような状況を処理するためのエレガントな方法は何ですか?
UPDATE:
はさらにこれについてブレーンストーミング、私はこの問題を生成する他の状況の多くは、おそらくそこにあると確信しています。必ずしもラジオボタンに対応するとは限りません。
私はさらに奇妙な問題があります...私はモデルのハッシュのために見つけられない同じparamを得るが、私がテストしているのはform_for @userの2つのユーザのフィールドを持つものであり、それはそれである。私のURLはユーザー名を使用して発生し、私はそれがIDまたは何かが不足していたと思うだろう。私は同じことをする私のプロジェクトの別の部分を持っています。唯一の違いは、足場からではなく最初からこのフォームを作成したことです。 – dtc