Ruby on rails RubyonRails邀请/注册
我目前正在构建一个应用程序,其中一部分是邀请/注册系统。目前,该系统中有“课程”和“教室”。因此,“课程”是某种课程,“教室”是一门课程的具体实例。F.ex。可能有1门课程,但该课程有3个课堂实例,具有不同的开始/结束日期、稍微不同的/更新的材料等。现在,可以邀请“员工”参加“课程”,但“员工”自己必须选择一个特定的“课堂”进行注册。因此,员工进入他/她的个人资料页面,在那里会显示邀请。现在,员工单击一个邀请,然后可以选择一个特定的教室进行注册。这显然应该创建一个注册。但是,它也应该摆脱邀请,因为它已经被“接受”。目前,我已经将其设置为“员工”通过“注册”拥有许多“教室”。此外,“员工”通过“邀请”有许多“课程”。但这似乎并不正确,因为当员工单击某些邀请时,他们将被带到一个注册页面(注册控制器),在那里将创建注册。创建注册后,应删除邀请。所以现在我想注册控制器应该能够创建注册和删除邀请。这似乎是个糟糕的设计。我对教室和员工之间的关系很满意,但员工和邀请函之间的关系似乎很糟糕。你会怎么做 为什么不在模型中简单地使用Ruby on rails RubyonRails邀请/注册,ruby-on-rails,ruby,invitation,Ruby On Rails,Ruby,Invitation,我目前正在构建一个应用程序,其中一部分是邀请/注册系统。目前,该系统中有“课程”和“教室”。因此,“课程”是某种课程,“教室”是一门课程的具体实例。F.ex。可能有1门课程,但该课程有3个课堂实例,具有不同的开始/结束日期、稍微不同的/更新的材料等。现在,可以邀请“员工”参加“课程”,但“员工”自己必须选择一个特定的“课堂”进行注册。因此,员工进入他/她的个人资料页面,在那里会显示邀请。现在,员工单击一个邀请,然后可以选择一个特定的教室进行注册。这显然应该创建一个注册。但是,它也应该摆脱邀请,因
status
属性来管理邀请过程
我将使用以下模型:
员工
,应用程序的用户李>
课程
,要遵循的课程李>
教室
,属于课程
(有多个教室的课程
)参与
,在员工、课程和课堂之间建立联系。此模式的状态取决于课程参与的演变:受邀
当员工被邀请时,已注册
当员工选择教室时,等等参与
模式的框架是:
class Participation < ActiveRecord::Base
attr_accessible :status
belongs_to :employee
belongs_to :course
belongs_to :classroom
#...
validates_uniqueness_of :employee_id, :scope => [course_id, :classroom_id]
end
在邀请时,将创建参与实例(状态已邀请
),相应的员工id
和课程id
,教室id
保留为空。注册时,将使用教室id
和状态已注册
更新参与情况
它是否符合您的需要?一个简单的解决方案是在邀请模型中添加一个
接受的布尔字段。选择教室/课程后,将accepted
设置为true。然后在配置文件页面上,仅显示accepted
为false的邀请
add_index :participation, [employee_id, course_id, classroom_id], unique => true