2014-12-05 108 views
2

我对rails很新颖。我试图在Rails中将关联设置为另一个模型。在Rails中建立两个关联到相同的模型列

我有一个用户模型列:ID,USER_NAME,电子邮件

现在我想创建具有关联到用户模型的另一个模型费用。此模型的目的是创建费用并将费用与来自同一模型用户的两个不同用户相关联。与第二个用户的关联是分割两个用户之间的金额。

这就是我打算在创建模型费用做:

$ rails generate model Expense amount:decimal user:references split_with:references 

现在怎么办我split_with的用户模型相关联,因为这两个引用联想到两个用户相同的用户模型的id ?

回答

4

你可以参考同型号的两种不同的方式:

class Expense < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :approving_user, 
    class_name: 'User' 
end 

这将需要列user_idapproving_user_id存在。您始终可以调整生成的迁移和模型代码以与此匹配。

一如既往地确定在这些列上设置了index: true

+0

user_id与轨道生成的用户标识或其他列完全相同吗? – vshl 2014-12-05 19:16:16

+0

这里'expense.user_id'按照惯例引用'users.id'。默认键始终是关联表的“id”列。 – tadman 2014-12-05 19:17:11

+0

啊对。谢谢。这就说得通了。 – vshl 2014-12-05 19:18:11