私は、acts_as_taggable_onの「tagged_with」メソッドでフラグ:onと:anyがどのように連携するかについて混乱しています。
たとえば、次のユーザー@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(interest_listではなくskill_listに「2」が含まれている)が返されることですが、何も期待していませんでした。フラグ:anyがフラグ:onを上書きした可能性があります。上記のフィルターを実際に実行する方法はありますか?
また、副次的な質問は、メソッドで使用可能なすべてのフラグをどのように見つけるかということです。たとえば、taged_withには:on、:any、:match_all、...がありますが、それらすべてを一覧表示するにはどうすればよいですか?
皆さん、助けてくれてありがとう!