【发布时间】:2014-08-06 10:03:05
【问题描述】:
我正在开发一个 Rails 应用程序。 我遇到了 Rails 关联的问题: 我有 3 个模型:User、Company 和 CompanyMember
# id :integer not null, primary key
class User < ActiveRecord::Base
has_one :company_member
has_one :company, through: :company_member
end
# id :integer not null, primary key
# name :string(255) not null
class Company < ActiveRecord::Base
has_many :company_members
has_many :members, through: :company_members, foreign_key: "user_id", source: :user
has_many :admins, -> {where admin: true }, through: :company_members, foreign_key: "user_id", source: :user
end
# id :integer not null, primary key
# company_id :integer
# user_id :integer
# admin :boolean
# created_at :datetime
# updated_at :datetime
class CompanyMember < ActiveRecord::Base
belongs_to :company
belongs_to :user
end
一个用户只能拥有一家公司。他可以是这家公司的管理员。一家公司可以有多个管理员。
所以当我想向公司添加成员时,我会这样做:company.members
现在我想添加一个用户作为管理员:我要做的是:company.admins
有可能通过 Rails 关联吗?因为实际上,它不起作用:/:company_member 记录为 {user_id: 5, company_id: 8, admin: false} 你能帮帮我吗?
谢谢!
我正在使用 Rails 4.1.3 和 ruby 2.1.2
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 associations