我想了解“按上下文”搜索的情况下,“tagged_with”方法的工作方式很难理解。

例如,如果我有以下@user:

class User < ActiveRecord::Base
      acts_as_taggable_on :skills, :interests
    end

@user1 = User.new(:name => "Bobby")
@user1.interest_list = "1, 2"
@user1.skill_list = "5, 3, 4"
@user1.save

@user2 = User.new(:name => "Al")
@user2.interest_list = "2, 4"
@user2.skill_list = "1, 3, 4"
@user2.save

我知道
User.tagged_with(["1"], :any => true)

会回馈@ user1和@ user2,b / c不会区分兴趣“1”标签或技能“1”标签。
但是我的问题是:有没有一种方法只能在“兴趣”上下文中而不是“技能”上下文中搜索标记为“1”的用户?换句话说,如何通过某种方式指定“skill”“1”来仅获取@ user2?

谢谢你们的帮助

最佳答案

使用on选项:

User.tagged_with(["1"], :on => :skills)

请参阅the readmethis cheat sheet上标题为“动态标记上下文”的部分以获取参考。

关于ruby-on-rails-3 - 如何使用行为作为标记按上下文搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5534169/

10-10 16:21