从符合另一个表的条件的表中获取值 - Rails 4

时间:2014-07-10 05:56:31

标签: activerecord ruby-on-rails-4.1

Ruby 2.0
Rails 4.1
MySQL

我有以下型号:

Agent with the following fields:
id
name

并使用以下字段付款:

id
agent_id
amount

ActiveRecord语法是什么,用于获取付款大于零的唯一代理列表。我尝试了许多变体,但它们都产生了非唯一列表。

在agents.rb中,我有:

has_many :payments

在payments.rb中,我有以下内容:

belongs_to :agents

解决方案:

  @agents = Agent.joins(:payments)
    .where("payments.amount > 0")
    .group("agents.id")

1 个答案:

答案 0 :(得分:0)

这有用吗? (我的红宝石有点生锈)

Agent.all(:joins => :payments, :group => :id, :conditions => ["payment.amount > 0"] )