我正在尝试实现acts_as_taggable_on gem。在我的设置中,我有一个名为Discipline的模型,预先填充了大约40个名字。
我还有一个我要标记的Model Micropost - 使用包含该学科数据库中所有名称的选择框。我以为我可以调用我想要的模型中的acts_as_taggable_ - 在这种情况下是Disciplines,但它不适用于我当前的设置。
class Micropost < ActiveRecord::Base
acts_as_taggable
acts_as_taggable_on :disciplines
end
这是表格......
<%= 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 %>
我可以从文档中看出有一种方法可以做到这一点....但我想我只是没有得到它。有什么建议吗?
答案 0 :(得分:0)
我认为您不能使用除默认Tag和Taggings模型之外的模型的acts_as_taggable_on。
替代方法#1 使用包含您的学科名称的预先填充的40个标签为您的数据库设定种子。
替代方法#2 使用bitmask_attributes为您的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