我有以下关联:
class User < ActiveRecord::Base
has_and_belongs_to_many :brands, :join_table => 'brands_users'
has_and_belongs_to_many :companies, :join_table => 'companies_users'
end
class Brand < ActiveRecord::Base
belongs_to :company
has_and_belongs_to_many :users, :join_table => 'brands_users'
end
class Company < ActiveRecord::Base
has_and_belongs_to_many :users, :join_table => 'companies_users'
has_many :brands, :order => :name
end
在编辑用户时,我正在使用品牌复选框列表。这样我就可以为用户分配品牌的“访问权限”,显示的品牌只是属于当前公司的品牌(由子域 [使用 subdomain_fu] 定义)。
我遇到的问题是,当使用默认的 HABTM 功能和复选框列表时,在保存时,Rails 会删除所有用户->品牌关联,然后只为我刚刚提交的表单重新添加这些关联。
如何将其范围限定为仅删除属于当前公司的品牌关联,在子域中定义?