欢迎来到cool的博客
7

Music box

Click to Start

点击头像播放音乐
新博客链接

acts-as-taggable-on(tags管理的rails gem)

  1. 安装
     gem 'acts-as-taggable-on', '~>3.4'
    

然后bundle install

  1. 安装迁移
     rake acts_as_taggable_on_engine:install:migrations
    
  2. 如果使用mysql数据库,需要在任何一个initializer文件中(比如config/initializers/assets.rb添加一行
     ActsAsTaggableOn.force_binary_collation = true
    
    或者运行
rake acts_as_taggable_on_engine:tag_names:collate_bin
  1. model文件(blog.rb)中增加

     acts_as_taggable # Alias for acts_as_taggable_on :tags
    

    这样就能使用@blog.tag_list等方法了。

  2. controller文件(blogs_controller.rb)中增加一个的tag_liststrong params

     def blog_params
       params.require(:blog).permit(:title, :content, :is_open, :tag_list)
     end
    
  3. views文件中增加tag_list相关的代码,比如这样

     <%= f.input :tag_list, label: 'tags', placeholder: "输入tags,用‘,’分开."  %>
    
  4. 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
    也可以用自定义的分割方式来进行处理.

  5. 还可以使用@blog.tag_list = "tag1,tag2,tag3,tag4"直接重置tag_list。相当于先把原来的tag_list删掉再增加。再@blog.save一下就OK了。
    需要注意的是@blog.update同时也更新了tag_list,虽然blogattributes中并没有tag_list

更多的用法直接看github:

https://github.com/mbleigh/acts-as-taggable-on

返回列表