- 安装
gem 'acts-as-taggable-on', '~>3.4'
然后bundle install
- 安装迁移
rake acts_as_taggable_on_engine:install:migrations - 如果使用
mysql数据库,需要在任何一个initializer文件中(比如config/initializers/assets.rb添加一行
或者运行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)中增加一个的tag_list的strong paramsdef blog_params params.require(:blog).permit(:title, :content, :is_open, :tag_list) end -
在
views文件中增加tag_list相关的代码,比如这样<%= f.input :tag_list, label: 'tags', placeholder: "输入tags,用‘,’分开." %> -
在
blogs_controller.rb中可以保存tag_list相关的数据了@blog = Blog.new(blog_params) @blog.tag_list.add(blog_params[:tag_list], parse: true)其中
parse: true参数支持多个tag,即将tag_list中的字符串,用","分割成多个tag。
也可以用自定义的分割方式来进行处理,参考这里 还可以使用
@blog.tag_list = "tag1,tag2,tag3,tag4"直接重置tag_list。相当于先把原来的tag_list删掉再增加。再@blog.save一下就OK了。
需要注意的是@blog.update同时也更新了tag_list,虽然blog的attributes中并没有tag_list
更多用法点我查看