在Rails中为同一个模型列建立两个关联

vsh*_*shl 3 ruby ruby-on-rails rails-migrations ruby-on-rails-4

我对rails非常陌生.我正在尝试在Rails中建立与另一个模型的关联.

我有一个带有列的用户模型:id,user_name,email

现在我正在尝试创建另一个与用户模型关联的模型Expense.此模型的目的是创建费用并将费用与来自同一模型用户的两个不同用户相关联.与第二个用户的关联是在两个用户之间拆分金额.

这是我打算在创建模型费用时要做的事情:

$ rails generate model Expense amount:decimal user:references split_with:references
Run Code Online (Sandbox Code Playgroud)

现在我如何将split_with与User模型相关联,因为两个引用都关联到同一个User模型的两个用户的id?

tad*_*man 5

您可以通过两种不同的方式引用相同的模型:

class Expense < ActiveRecord::Base
  belongs_to :user
  belongs_to :approving_user,
    class_name: 'User'
end
Run Code Online (Sandbox Code Playgroud)

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

始终确保index: true在这些列上设置.