12

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

管理パネルでリソースにタグ付け機能を追加する通常の方法は、admin/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

しかし、期待どおりに機能しません。これにより、実際には、名前にいくつかの整数値を持つ新しいタグが作成され、それらがその投稿に割り当てられます。これを機能させるには追加のコードが必要だと誰かが私に言いました。

これがどのように行われるかについての手がかりはありますか?念のため、ここに私のモデルを示します: http://pastie.org/3911123

前もって感謝します。

4

1 に答える 1

12

それ以外の

:collection => ActsAsTaggableOn::Tag.all

試す

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

コレクションを に設定するTag.allと、投稿にタグの ID がタグ付けされます。これは、タグがデフォルトで識別される方法であるためです (名前の整数値はそこから取得されます)。map(&:name)代わりにタグの名前を使用するようにフォームビルダーに指示します。

于 2012-11-24T03:04:32.857 に答える