acts-as-taggable-on 接口使用

0 篇文章 0 订阅

创建了两个表,以及对应的两个 model
分别是:
ActsAsTaggableOn::Tag 有 id,name

上面是标签表。

ActsAsTaggableOn::Tagging 有 id,tag_id,taggable_id,taggable_type,tagger_id,tagger_type,context

上面是关联表(中间表)

tag_id 就是第一张表,标签表的 id

taggable 为被标记者

tagger 为标注者(我们没有用到)

context 为标签类型(我们只用到 tags,我会新增 skills)

新增字段:tag_list,skill_list,interest_list

用法:

1, (标签类型,对应中间表的 content 字段)

# Alias for acts_as_taggable_on :tags

acts_as_taggable

acts_as_taggable_on :skills, :interests

tag_list= (设置标签内容,会创建对应的中间表和 tag 表)

tag_list (看似是字段内容,其实是 tag 的内容拼接起来的)

skill_list (看似是字段内容,其实是 tag 的内容拼接起来的)

(上面设置的时候是字符串,读取的时候是数组)

2,

tag_list.add 在原字段的基础上多了 add 方法

tag_list.remove 在原字段的基础上多了 remove 方法

tags 复数形式(中间表)

skill_counts 统计

3,(在 1 的基础上维持输入时的顺序)

# Alias for acts_as_ordered_taggable_on :tags

acts_as_ordered_taggable

acts_as_ordered_taggable_on :skills, :interests

4,

tagged_with (类方法,参数是标签的名字,返回是有此标签的对应的类的实例)

5,

find_related_skills (实例方法,不带参数,返回和此调用者有类似标签的实例对象)

6,(动态新增 tag 类型,不推荐,tag 类型应该一开始就定好。)

set_tag_list_on

(下面几个方法不是动态生成的,平时也可用!)

tag_list_on (实例方法,参数为类型)

tags_on (实例方法,参数为类型)

tag_counts_on (参考 9)

tagged_with (参考 4)

7,(多一层关联,标签创建者,目前我们用不上)

acts_as_tagger

acts_as_taggable_on :locations (参考 7)

(下面几个除 tagged_with 外,均为实例方法)

tag

owned_taggings

owned_tags

tagged_with (参考 4)

locations_from

owner_tags_on

8,

skill_list_changed? (Rails 自带)

changes (Rails 自带)

changes.should

skill_list_change.should

9,

tag_counts_on (类方法,参数为标签类型)

tag_cloud (参考示例,自己定义的方法)

10,

remove_unused_tags (不使用的标签,要删除掉?)

force_lowercase (保存时强制转换成小写?)

force_parameterize (如何保存标签,类似 to_params)

strict_case_match (数据库查询标签时,大小写是否敏感)

delimiter (默认标签之间用‘逗号’分隔)

aats = ActsAsTaggableOn::Tagging.where(context: “skills”).group(:tag_id).order(‘count_all desc’).count;

aats.map do |key, value|

“#{value} – #{ActsAsTaggableOn::Tag.find(key).name}”

end

File.open(‘tag_list_statistics ‘, ‘w’) do |file|
aats.each do |key, value|
file.write( “#{value} – #{ActsAsTaggableOn::Tag.find(key).name}\n” )
end
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值