我对标志 :on 和 :any 在acts_as_taggable_on 的“tagged_with”方法中如何协同工作感到困惑。
例如,如果我有以下用户 @user1 和 @user2:
class User < ActiveRecord::Base
acts_as_taggable_on :skills, :interests
end
@user1 = User.new(:name => "Bobby")
@user1.interest_list = "1, 15"
@user1.skill_list = "2, 17"
@user1.save
@user2 = User.new(:name => "Al")
@user2.interest_list = "3, 10"
@user2.skill_list = "4, 6"
@user2.save
当我想让所有用户的兴趣列表包含任何标签 [“2”、“50”] 时,我尝试了这个:
User.tagged_with(["2", "50"], :on => :interests, :any => true)
问题是我找回了@user1(在技能列表中有“2”,而不是兴趣列表),即使我没有预料到。似乎标志 :any 可能已经覆盖了标志 :on。有没有办法实际执行我上面描述的过滤器?
另外,一个附带的问题是,你如何找到一个方法可用的所有标志?例如,tagged_with 有 :on, :any, :match_all, ...,我如何列出所有这些?
谢谢大家的帮助!