私はここで少し概念的な問題で立ち往生しています。ポスト、タグ、およびユーザのために、以下の[抽象化]の設定を前提としていますRails MVC:collection_selectはどのコレクションレコードをレンダリングすべきかを知っていますか?
Post belongs_to Tag
Tag has_many Posts
User has_many Tags,
has_many Posts
ユーザーが唯一の彼の関連するタグのいずれかでポストにタグを付けることができます。新しい投稿フォームビューで
は、私は今、タグを選択するためのオプションは以下があります。@tags = current_user.tags
f.collection_select :tag_id, @tags,
とコントローラの新アクションで
f.collection_select :tag_id, current_user.tags, ...
質問:概念的に正しいオプションは何ですか?
MVCの観点からは、私は間違いなく2番目のオプションを使用する傾向があります。ビューでは、collection_selectでレンダリングするタグがユーザー(さらに具体的には、現在のユーザー)に関連付けられていることが分かります。
しかし、official api documentation for collection_selectとウェブの周りにいくつかのothertutorialsに私はこのような何かを参照してください。
collection_select(:post, :author_id, Author.all, ...)
明確に最初のオプションを好みます。このアプローチのプロサイトでは、投稿の保存アクションが失敗し、新しいアクションを再度レンダリングしたい場合に、コントローラの作成アクションで@タグを再定義する必要はありません。
事前にお寄せいただきありがとうございます。
これは助けになります。私は最初の選択肢に行きます。どうもありがとう! – emrass