連絡先と記事の 2 つの独立した「コンポーネント」モデルがあります。連絡先にはさまざまな種類があります (生産者、輸出者など)。
新しい記事フォームには、連絡先 (ID とタイトル) を含むドロップダウン セレクターがあり、選択した値とテキストを記事テーブルに保存したいと考えています。
新しい記事フォーム ビュー:
<%= f.select :producer_id, options_for_select(producers, @article.producer_id) %>
それproducer_id
は機能し、article テーブルに格納されます。
それは私にとって明確で論理的ですが、場合によっては、選択した連絡先の役職を に保存する必要もありproducer_title
ます。
「保存前にモデルで実行する」、「コントローラーで実行する」など、さまざまなオプションを読みましたが、コントローラー内で実行しました。
記事のコントローラー (更新の一部のみ):
#cont_name is producer title from Contacts
def update
params[:article][:producer_title] = Contact.where(id: params[:article][:producer_id]).pluck(:cont_name).first
end
これは機能しますが、この問題に対するベストプラクティスのアプローチですか?
params[producer_id]
また、使用する部分を変更すると動作しないのはなぜid: params[:producer_id]
ですか?
よろしくお願いします。