Ruby on rails 具有两个关联模型的ActiveRecord查询
我有两种模式,交易模式和用户模式。一个用户有许多交易,而一笔交易属于创建该交易的用户。用户具有属性roles,其中user.roles是一个数组Ruby on rails 具有两个关联模型的ActiveRecord查询,ruby-on-rails,ruby,rails-activerecord,Ruby On Rails,Ruby,Rails Activerecord,我有两种模式,交易模式和用户模式。一个用户有许多交易,而一笔交易属于创建该交易的用户。用户具有属性roles,其中user.roles是一个数组 我想找到所有由角色包括开发者的用户创建的交易。我习惯于为数据库查询编写SQL,所以我在这里遇到了麻烦。我认为自己是一个SQL穴居人,但你可以做一些事情,比如:Deal.includes:users.where:users=>{:role=>'developer'}或者不管你的用户角色如何被查询 我认为自己是一个sql穴居人,但您可以执行以下操作:Dea
我想找到所有由角色包括开发者的用户创建的交易。我习惯于为数据库查询编写SQL,所以我在这里遇到了麻烦。我认为自己是一个SQL穴居人,但你可以做一些事情,比如:Deal.includes:users.where:users=>{:role=>'developer'}或者不管你的用户角色如何被查询 我认为自己是一个sql穴居人,但您可以执行以下操作:Deal.includes:users.where:users=>{:role=>'developer}或者您的用户角色如何被查询
@deals = Deal.joins(:users).where(:users => { :roles => ['developer'] })
参考:
参考资料:有几个选项:
@deals = Deal.select{|d| d.user.roles.include?("developer")}
或
我更喜欢第一个,但第二个可能更快,这取决于您有多少交易和用户。有几个选项:
@deals = Deal.select{|d| d.user.roles.include?("developer")}
或
我更喜欢第一个,但第二个可能会更快,这取决于您有多少交易和用户。Hm,在rails控制台中尝试此操作时,我似乎遇到了此错误:ActiveRecord::StatementInvalid:Mysql2::error:Unknown列“user.roles”在“w here子句”中:选择deals.*从deals内部加入users.id=deals.user\u id WHERE user.roles在“developer”中,在rails控制台中尝试此操作时,我似乎遇到了此错误:ActiveRecord::StatementInvalid:Mysql2::error:Unknown列“user.roles”在“w here子句”中:选择deals.*从deals内部加入users.id=deals.user\u id WHERE user.roles在“developer”中