【发布时间】:2021-10-21 01:22:04
【问题描述】:
在这个例子中,我想要所有具有Ruby 和HTML languages 的projects,它们是通过project_languages 的多对多关系。
class Project
has_many :project_languages
has_many :languages, through: :project_languages
end
class Language
has_many :project_languages
has_many :projects, through: :project_languages
end
class ProjectLanguage
belongs_to :project
belongs_to :language
end
我正在尝试,但返回一个空数组:
Project.joins(:languages).where('languages.name = ? AND languages.name = ?', 'Ruby', 'HTML')
这会返回预期的结果,但我认为必须有一种更简单的方法:
Project.joins(:languages).where(languages: {name: 'Ruby' }) & (Project.joins(:languages).where(languages: {name: 'HTML' }))
【问题讨论】:
标签: sql ruby-on-rails postgresql rails-activerecord