10

ActiveAdminでアクセスしている投稿モデルがあります。また、acts_as_taggable_on宝石を使用してタグ付けすることもできます。管理者は特定の投稿からタグを追加、編集、削除することができます。acts_as_taggable_onとActiveAdminでタグを操作する

管理パネルでリソースのタグ付け機能を追加するための通常の方法は、管理者/ posts.rbでこれを行うことにより、されています。しかし、私は複数選択から選択したタグを持つようにしたい

ActiveAdmin.register Post do 
    form do |f| 
    f.inputs "Details", :multipart => true do 
     f.input :tag_list 
     # and the other irrelevant fields goes here 
    end 

    f.buttons 
    end 
end 

(上記のコードのように)テキストフィールドに手動で入力しないでください。だから私はこれをやってみた:

 f.input :tag_list, :as => :select, 
         :multiple => :true, 
         :collection => ActsAsTaggableOn::Tag.all 

しかし、期待どおりに動作しません。これは実際にいくつかの整数値を持つ新しいタグを作成し、それらをそのPostに割り当てます。誰かが私に、これが機能するには特別なコードが必要だと教えてくれました。

これがどのように行われたかについての手がかりは?ちょうどその場合の私のモデルです:http://pastie.org/3911123

ありがとうございます。それはタグはそれがどこの整数です(デフォルトで識別されている方法ですので、

+0

私も同じことをやろうとしていますが、actsastaggable onはコンマで区切られた文字列を必要とするため、複数選択ドロップダウンが与える配列を受け入れるための強力なパラメータを取得できません。どのようにこれを処理しましたか? – Philip7899

答えて

10

代わり

:collection => ActsAsTaggableOn::Tag.all 

の、Tag.allのコレクションは、タグのIDとあなたの記事にタグを付けるために起こっている設定

:collection => ActsAsTaggableOn::Tag.pluck(:name) 

を試してみてください名前の値はから来ています)。 map(&:name)は、代わりにタグの名前を使用するようにフォームビルダに指示します。

+4

'ActsAsTaggableOn :: Tag.pluck(:name)'は、名前を抽出する前にすべてのタグをメモリにロードしないため、さらに優れています。 –

関連する問題