- 安裝
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 params
def 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,用‘,’分開." %>
-
在
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
中并沒有tag_list
更多用法點(diǎn)我查看