0

嘿,我刚刚回到轨道,我忘记了很多与某些协会合作所需的东西。

问题:

我有两张表,带有Customerfielsid和带有 field 。我想得到一个这样的数组 a是a的。我知道如何在 SQL 中执行此操作,但忘记了如何在 Ariel 中执行此操作。user_idUseridUsersCustomeruser_ididUser

编辑

所以我想我需要多解释一点。我正在接管一个现有的项目。用户和客户之间存在一对一的关系,但是只有一些用户具有相关的客户实体,因此大部分时间user.customer都会返回呼叫。nil我需要编辑一个当前列出所有用户的页面,但现在我只需要列出具有客户记录的用户。

之前的开发人员已经创建了这些关系:

class Customer
  belongs_to :user, :class_name => "Refinery::User"
end

Refinery::User.class_eval do
  has_one :customer
end

我的控制器中有以下代码:

def index
  # i need to return an array of users, such that the only
  # users in this array are the ones with a non-nil customer.
  @users = Refinery::User.paginate(:page => params[:page])
end

任何帮助都会很棒,谢谢!

4

2 回答 2

1

belongs_to您可以在客户和用户这两个类中定义关联 has_many

然后您将能够使用Users.find(id).customers等。

rails 文档很好地解释了这一点——看看客户和订单的例子。

在您的问题更新 后更新 - 尝试

User.where("customer.id IS NOT NULL")

或者

@users = Refinery::User.where("customer.id IS NOT NULL").paginate(:page => params[:page])
于 2013-04-25T08:10:17.153 回答
0

您不需要对此提出任何 Ariel 请求。

用户:

class User < ActiveRecord::Base
  has_many :customers
end

顾客 :

class Customer < ActiveRecord::Base
  belongs_to :user
end

代码 :

customer = Customer.find(1)
users = customer.users
于 2013-04-25T08:14:46.203 回答