嘿,我刚刚回到轨道,我忘记了与一些协会合作所需的很多东西。
问题:
我有两个表格,Customer
包含fiels id
和user_id
以及User
字段id
。我希望获得一个Users
数组,以便Customer
user_id
是id
的{{1}}。我知道如何在SQL中执行此操作,但忘记了如何在Ariel中执行此操作。
修改
所以我想我需要解释一下。我正在接管一个现有的项目。用户和客户之间存在一对一的关系,但只有部分用户拥有相关的客户实体,因此在大多数情况下调用User
将返回user.customer
。我需要编辑当前列出所有用户的页面,但现在我只需要列出拥有客户记录的用户。
以前的开发者已经创建了关系:
nil
我的控制器中有以下代码:
class Customer
belongs_to :user, :class_name => "Refinery::User"
end
Refinery::User.class_eval do
has_one :customer
end
任何帮助都会很棒,谢谢!
答案 0 :(得分:1)
您可以在两个类中定义关联,客户为belongs_to
,用户为has_many
。
然后,您就可以使用Users.find(id).customers
等。
rails documentation很好地解释了这一点 - 看一下客户和订单的例子。
<强>更新强> 关注您的问题更新 - 尝试
User.where("customer.id IS NOT NULL")
或
@users = Refinery::User.where("customer.id IS NOT NULL").paginate(:page => params[:page])
答案 1 :(得分: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