我對flags:on和any:如何在acts_as_taggable_on的「tagged_with」方法中一起工作感到困惑。是否:任何標誌覆蓋acts_as_taggable_on的tagged_with中的on(上下文)標誌?
舉例來說,如果我有以下的用戶@ user1和@用戶2:
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」的skill_list,不interest_list),即使我期待沒有。看來,國旗:任何人都可能會覆蓋國旗:開。有沒有辦法實際執行我上面描述的過濾器?
此外,一個側面的問題是,你如何找到一個方法可用的所有標誌?例如,tagged_with具有:on,:any,:match_all,...,我如何列出所有這些內容?
感謝您的幫助,每個人!
我在行爲-AS-taggable-沒有專家但是我瀏覽了源代碼並[看起來應該按預期工作](https://github.com/mbleigh/acts-as-taggable-on/blob/2752cfe/lib/acts_as_taggable_on/acts_as_taggable_on/) core.rb#L91)。執行此代碼時生成的SQL查詢是什麼? – 2011-04-06 03:13:39
是的,我發現它也很奇怪,源代碼確實包含了標誌的正確邏輯。問題是,tagged_with方法在2011年3月18日檢查了一個主要修復程序,但它尚未成爲rubygem.org上gem的一部分。從git中直接引用後,所有東西現在都可以像源代碼那樣工作。謝謝,布蘭登,爲您提供幫助。 – Dominic 2011-04-06 13:43:06