【发布时间】:2015-07-12 14:27:28
【问题描述】:
在我的 Rails 应用程序中,我有以下模型:
class User < ActiveRecord::Base
# user declaration
has_many :account
end
class Account < ActiveRecord::Base
belongs_to :user
end
我需要添加另一个关系,其中每个Account 可以由多个AccountManagers 管理。但是,AccountManagers 本身也是该系统的Users(即User 可以同时拥有Account 并管理另一个用户的帐户)。
我对 Rails 还很陌生,我知道我可以创建另一个名为 AccountManagers 的模型。但是我有一种感觉,我们不需要制作另一个模型。我提议的AccountManagers 模型中包含的所有信息也可以在Users 模型中找到。
我尝试将以下关系添加到Account 模型:
has_many :account_managers, through: :users, source: :users
Account 有许多管理器,每个管理器都是从 User 模型声明的。这不起作用,因为 AccountManagers 表不存在(视图中的错误也表明了这一点)。
有没有办法让这种关系发挥作用?
【问题讨论】:
-
试试这个 "has_many :account_managers, through: :users, :class_name => "User", ,:foreign_key => "account_manager_id""
标签: ruby-on-rails has-many-through