1

関連付けを更新するための受け入れられた方法について混乱しています。Worker と Factory の 2 つのモデルがあるとします。Worker を編集するとき、ファクトリのリストを含む select_tag がユーザーに表示されます。私の問題は、factory_id が params[:worker][:factory_id] ハッシュではなく、代わりに params[:factory_id] ハッシュにあるという事実です。最終的な結果として、worker.update_attributes が呼び出されたときに、factory_id は :worker ハッシュにないため更新されません。

私の質問は、erb ファイルを変更して factory_id を params[:worker] ハッシュに取得しようとするか、params[:worker][:factory_id] の値を params で見つかった値で手動で更新する必要があるかです。 [:factory_id]。以下は、そこでやるべきことが違う場合に備えて、私のerbコードです。また、それが役立つ場合は、Factory クラスには多くのワーカーがあり、Worker クラスは Factory クラスに属しています。

<div>
  <%= label_tag :factory , "Factory" %><br />
  <%= select_tag "factory_id",
     options_from_collection_for_select(@state_factories... %>
</div>

どんな助けでも大歓迎です。

4

1 に答える 1

1

ERBファイルでそれを行います:

<%= select_tag "worker[factory_id]", options_from_collection_for_select(@state_factories... %>

ただし、selectヘルパーを使用します。

<%= select "worker", "factory_id", options_from_collection_for_select(@state_factories... %>

編集時にファクトリが自動的に選択されるためです。

于 2012-12-28T10:21:10.163 に答える