如何使用关联的另一半分配属于“有很多:通过”的一半的项目?

时间:2013-03-08 01:40:18

标签: ruby-on-rails ruby associations

我正在尝试用Ruby建模我的数据库,但无法弄清楚如何去做。

这是我到目前为止所做的:

class Course < ActiveRecord::Base
    has_many :enrolled_ins
    has_many :users, :through => :enrolled_ins
    has_many :events, :dependent => :destroy
end

class User < ActiveRecord::Base
    has_many :enrolled_ins
    has_many :courses, :through => :enrolled_ins
end

class EnrolledIn < ActiveRecord::Base
    belongs_to :users
    belongs_to :courses
end

class Event < ActiveRecord::Base
    belongs_to :courses
end

我想补充一点,当用户选择课程时,他们可以选择他们想要的那些课程,并分配给他们,而不是他们获得所有的事件。

1 个答案:

答案 0 :(得分:0)

我会添加一个UserEvents连接。添加课程时,您会看到可用事件列表。假设您有一个带复选框的表单,您将创建UserEvent记录。我认为您不需要所有3个ID值(用户,事件,课程)。课程只是将各种活动分组的一种方式。

class UserEvent < ActiveRecord::Base
  belongs_to :user
  belongs_to :event
end

我还会在用户和事件上添加依赖性破坏,如果删除了任何一方,则会破坏连接记录。