Rails中的Belongs_to和backup belongs_to

时间:2012-12-06 05:14:43

标签: ruby-on-rails activerecord

这个问题来自分解一个太大的问题。

UsersEvents中创建Role Network。然后EventsRole(不同的Users可以在雇用或解雇时占用Role)以及Event相关联。拥有管理Users的{​​{1}}可以访问所有Roles,无论创建Events的{​​{1}}是什么。

Role可能会被销毁,但只要Event存在,Role就会一直存在。 (如果某个职位被删除,但他们仍然希望退休职位的数据。)

Event Network Eventbelongs_to可以分开吗?这是坏导轨设计吗?还有另一种方法吗?我是否会有一个特殊的“退休”角色并将事件始终与Role相关联,然后使用Network

Network.rb

Role

Role.rb

belongs_to :network, :through => :role

Event.rb - 这是对的吗?

class Network < ActiveRecord::Base
  has_many :roles
  has_many :users, :through => :roles
  has_many :events
end

1 个答案:

答案 0 :(得分:0)

在我看来,使用您的关联(属于角色和网络的事件)设计并不错。而且我觉得拥有一个“退役角色”而不是让它更加困惑。但也许您应该考虑在角色上使用列status而不是删除它。如果状态不是例如1(如果1 = ok,2 =非活动为例)它不能再使用了,就像它被删除一样。

当你没有完整的图片时,很难给出建议,但正如我所说,在我看来,只要能够改变关联就不需要“退休”的角色。