我有几个模型定义如下:
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/