Entry
モデルはhas_many :tags
です。私は、テキスト入力(すなわち、 "tag-1、tag-2"など)で自分のタグをリストしたいと思っていますが、私は問題にぶつかっています。私はちょうど特定の関連付けコレクションに対してカスタムto_sメソッドを作成できますか?
form_for(:entry, form_options) do |f|
f.text_field :tags
end
を使用する場合は
私のテキストボックスが作成されますが、私が探しているものを明らかにではありません#<Tag:0xb79fb584>#<Tag:0xb79faddc>
のようなもの、で満たされています。
は私がタグを付けるためのto_s
メソッドを追加することができます知っている:
class Tag < ActiveRecord::Base
def to_s
name # the name of the tag
end
end
しかし、それはちょうど、まだただArray#to_s
を指しtag-1tag-2
@entry.tags.to_s
ためのようなものを私に残します。正しい文字列が表示されますが、物事の「レールウェイ」のように感じることはありません。今、私は
f.text_field :tags, :value => @entry.tags.map(&:name).join(", ")
代わりに使用しています
、。私のカスタムto_s
メソッドを具体的に私のtags
に追加する方法はありますか?
私はメンテナンスコーダーです(個人的なプロジェクトなので、心配しません)。私は 'tag_names'メソッドを追加することを検討しましたが、そのためのトレードオフはコントローラに@ entry.tagsを保存するための余分なコードが必要なことです。 –
falseの場合、モデル(タグの所在地)にtags_string =を定義し、名前で標準タグの検索または作成を処理します。さらに、acts_as_taggable_on_steroidsなどを使用して、すべて無料で入手できます。 –