我有几个模型定义如下:

class Question < ActiveRecord::Base
  has_many :skill_tags, as: :skillable
end

class SkillTag < ActiveRecord::Base
  belongs_to :skillable, polymorphic: true
  belongs_to :skill
end

class Skill < ActiveRecord::Base
  has_and_belongs_to_many :skill_tags
end

我想获取所有具有相关特定技能的所有 Question 对象的数组。

例如 - 我想要所有具有技能标签且技能 ID 为 16、34 和 89 的问题。这些可以在数组中。实现这一目标的对 Rails 最友好的方式是什么?我可以想到一些更“蛮力”的方法,但我希望它尽可能干净。

最佳答案

像这样的事情应该可以解决问题:

Question.joins(:skill_tag).where(:skill_tags => {:skill_id => [16, 34, 89]})

关于ruby-on-rails - 仅当 child 具有特定属性时才查询对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22347735/

10-11 05:05
查看更多