Ruby on rails 4 (Rails 4)充当“标记”:使用除“标记”以外的模型;标签";

Ruby on rails 4 (Rails 4)充当“标记”:使用除“标记”以外的模型;标签";,ruby-on-rails-4,acts-as-taggable-on,Ruby On Rails 4,Acts As Taggable On,我试图在gem上实现acts\u as\u taggable\u。在我的设置中,我有一个名为“规程”的模型,它预先填充了大约40个名称 我还有一个模型Micropost,我想标记它——使用一个包含规程数据库中所有名称的选择框。我想我可以在我想要的模型上把acts_称为_taggable_——在本例中是规程,但它不适用于我当前的设置 class Micropost < ActiveRecord::Base acts_as_taggable acts

我试图在gem上实现acts\u as\u taggable\u。在我的设置中,我有一个名为“规程”的模型,它预先填充了大约40个名称

我还有一个模型Micropost,我想标记它——使用一个包含规程数据库中所有名称的选择框。我想我可以在我想要的模型上把acts_称为_taggable_——在本例中是规程,但它不适用于我当前的设置

   class Micropost < ActiveRecord::Base
         acts_as_taggable 
         acts_as_taggable_on :disciplines  
    end  
class Micropost
这是表格

     <%= simple_form_for(@micropost) do |f| %>
     <%= render 'shared/error_messages', object: f.object %>

     <%= f.input :tag_list, :as => :select,
              :multiple => :true,
              :collection => ActsAsTaggableOn::Tag.pluck(:name) %>

     <%= f.text_area :content, placeholder: "What is your question?", :style => "height:75px;" %>
     <%= f.submit "Post", class: "btn btn-primary" %>
     <% end %>

:选择,
:multiple=>:true,
:collection=>actsastaggaleon::Tag.pull(:name)%%>
“高度:75px;”%>

我可以从文档中看出,有一种方法可以做到这一点……但我想我只是不明白而已。有什么建议吗?

我认为除了默认标记和标记模型之外,您不能将acts作为标记使用

替代方法#1 使用预先填充的40个包含学科名称的标记为数据库种子

替代方法#2 用于你的40个学科。 例如,在我的应用程序中,我有:

bitmask :instruments, as: [:others, :guitar, :piano, :bass, :mandolin, :banjo,
                               :ukulele, :violin, :flute, :harmonica, :trombone,
                               :trumpet, :clarinet, :saxophone, :viola, :oboe,
                               :cello, :bassoon, :organ, :harp, :accordion, :lute,
                               :tuba, :ocarina], null: false

你知道怎么做了吗?我想用这个做类似的用途