通过rails

时间:2017-08-17 17:23:17

标签: ruby-on-rails ruby-on-rails-4 activerecord

我的rails应用中有两个模型:report.rbuser.rb

报告表

id
assigned_user_id
amount
costs
etc.

用户表

id
assigned_user_id
email
prename
etc.

我知道如果我使用标准Rails逻辑(在报表上有user_id等),我可以将这两个模型与belongs_to和has_many联系起来。

但由于我在报告表中没有user_id,我想通过assigned_user_id连接两个表,但我现在不知道如何在我的模型中指定我的关联。

1 个答案:

答案 0 :(得分:1)

要为1对多关联设置别名,请使用foreign_keyclass_name选项。

class User < ApplicationRecord
  # without foreign_key Rails would look for the inverse 
  # in reports.user_id
  has_many :reports, foreign_key: :assigned_user_id
end

class Report < ApplicationRecord
  # class_name is needed since the class name cannot be deduced by
  # the name of the association
  belongs_to :assigned_user, class_name: 'User'
end