これは私が疑問に思ってHow to I serve data from an object's associations in rails forms?Railsの "Edit"フォームの関連付けからどのようにデータをマップできますか?
へのフォローアップですが、私は編集Articleオブジェクトのページタグ(だけでなく、関連するテーブルによって保存されている他の属性に提供するために積極的なロードを使用したいと思います。前の質問では、私は、データという-負荷を事前に団体の積極的なロードを使用することができることを知らされた。それは2を持っている以外IEはコントローラで、私はこれは素晴らしいことだ
@article = Article.find(params[:id], :include => [:tags])
を含めるために呼び出す.find強化します主な注意事項まず、フォーム内のフィールドにオブジェクトを提供することです。したがって、この例では、編集フォームの:tagsフィールドには、
[#<Tag id: 298, name: "Wondering">]
よりもむしろ
Wondering
第二の注意点は、私はカスタムフィールドにこれらの関連サービスを提供することができないということです。たとえば、a:tagsフィールドを持っているのではなく、a::tag_listフィールドを持っています。記事の作成時に、ユーザーはここにいくつかのタグを入力します。編集時に、:タグは名前でマップされず、tag_listフィールドに入れられます。
@article.tag_list = @article.tags.map(&:name)
しかし、私は、私はこれを書かなければならないだろうそのために非常に多くの分野を持っているので、私は、よりエレガントな解決策を探しています、そしてそれはの無駄のように思える:私は常に、コントローラに次の行を追加することができますコード行。
誰でも手助けできますか?
ねえ、私はこれを答えとみなしてうれしいですが、1つの問題があります。彼はtag_namesの定義において、 "at-sign" tag_names || tags.map ..私はこれを実装しようとしましたが、 "at-sign" tag_namesは常にnilです(f.text_field:tag_namesは "at-sign" tag_names変数を作成するというフォーム提出からの認識はありません) "tag_namesは定義されますか? – jay
' attr_writer:tag_names' – Azolo