- 安裝
gem 'acts-as-taggable-on', '~>3.4'
然后bundle install
- 安裝遷移
rake acts_as_taggable_on_engine:install:migrations - 如果使用
mysql數(shù)據(jù)庫(kù),需要在任何一個(gè)initializer文件中(比如config/initializers/assets.rb添加一行
或者運(yùn)行ActsAsTaggableOn.force_binary_collation = true
rake acts_as_taggable_on_engine:tag_names:collate_bin
-
model文件(blog.rb)中增加acts_as_taggable # Alias for acts_as_taggable_on :tags這樣就能使用
@blog.tag_list等方法了。 -
controller文件(blogs_controller.rb)中增加一個(gè)的tag_list的strong paramsdef blog_params params.require(:blog).permit(:title, :content, :is_open, :tag_list) end -
在
views文件中增加tag_list相關(guān)的代碼,比如這樣<%= f.input :tag_list, label: 'tags', placeholder: "輸入tags,用‘,’分開(kāi)." %> -
在
blogs_controller.rb中可以保存tag_list相關(guān)的數(shù)據(jù)了@blog = Blog.new(blog_params) @blog.tag_list.add(blog_params[:tag_list], parse: true)其中
parse: true參數(shù)支持多個(gè)tag,即將tag_list中的字符串,用","分割成多個(gè)tag。
也可以用自定義的分割方式來(lái)進(jìn)行處理,參考這里 還可以使用
@blog.tag_list = "tag1,tag2,tag3,tag4"直接重置tag_list。相當(dāng)于先把原來(lái)的tag_list刪掉再增加。再@blog.save一下就OK了。
需要注意的是@blog.update同時(shí)也更新了tag_list,雖然blog的attributes中并沒(méi)有tag_list
更多用法點(diǎn)我查看