这个问题来自于分解一个太大的问题。
Users在 a 中创建Events为Rolea Network。然后将Events它们连接到(在他们被雇用或解雇时可以占据Role不同的位置)以及. 无论创建. _ _UsersRoleEventUsersRolesEventsRoleEvent
有Role可能被摧毁,但Event只要存在,它就会一直Network存在。(就像删除了一个职位,但他们仍然想要退休职位的数据。)
那么aEvent和a可以分开吗?这是糟糕的轨道设计吗?还有另一种方法可以做到这一点吗?我是否会有一个特殊的“已退休”角色并始终将事件绑定到 a然后使用?belongs_toRoleNetworkRolebelongs_to :network, :through => :role
网络.rb
class Network < ActiveRecord::Base
has_many :roles
has_many :users, :through => :roles
has_many :events
end
角色.rb
class Role < ActiveRecord::Base
belongs_to :user
belongs_to :network
end
Event.rb - 这是对的吗?
class Event < ActiveRecord::Base
belongs_to :role
belongs to :network
end