首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby on rails邀请/注册

Ruby on rails邀请/注册
EN

Stack Overflow用户
提问于 2012-10-28 02:56:27
回答 2查看 726关注 0票数 0

我目前正在构建一个应用程序,其中的一部分是邀请/注册系统。目前在系统中有“课程”和“教室”。因此,“课程”是某个课程,而“课堂”是课程的具体实例。F.ex。可能有1门课程,但该课程的3个课堂实例,具有不同的开始/结束日期,略有不同/更新的材料等。现在,可以邀请“员工”参加“课程”,但“员工”自己必须选择一个特定的“课堂”注册。因此,该员工转到他/她的个人资料页面,在那里显示邀请。现在,员工单击一个邀请,然后可以选择要注册的特定课堂。这显然应该创建一个注册。但是,它也应该摆脱邀请,因为它已经“接受”了。目前,我将其设置为“员工”通过“注册”拥有许多“教室”。此外,“员工”通过“邀请”有许多“课程”。但这似乎并不正确,因为当员工单击某些邀请时,他们将被带到注册页面(注册控制器),在那里将创建注册。注册创建完成后,邀请应被删除。所以现在我猜注册控制器应该能够创建注册和删除邀请。这似乎是一个糟糕的设计。我对教室和员工之间的关系很满意,但员工和邀请函之间的关系似乎很糟糕。你会怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-28 04:20:34

为什么不在模型中简单地使用status属性来管理邀请过程呢?

我将使用以下模型:

  1. Employee,app;
  2. Course,的用户将属于followed;
  3. Classroom,的课程属于classrooms).
  4. Participation,(具有在雇员、课程和教室之间建立联系的多个Course的课程)。此模型的状态取决于课程的参与情况:当员工被邀请时为invited,当员工选择了课堂时为enrolled,等等。

Participation模型的框架是:

代码语言:javascript
复制
 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

对给定课程和课堂的员工有独特的要求。并且可能只针对课程本身,而不考虑教室,这取决于您的选择。

我将在Participations表上添加一个唯一索引:

代码语言:javascript
复制
 add_index :participation, [employee_id, course_id, classroom_id], unique => true

在邀请时,将创建参与实例(状态为invited),其中相应的employee_idcourse_idclassroom_id保留为空。注册时,将使用classroom_id和status enrolled更新参与。

它适合你的需求吗?

票数 0
EN

Stack Overflow用户

发布于 2012-10-28 04:24:52

一个简单的解决方案是向邀请模型添加一个accepted布尔型字段。选择教室/课程后,将accepted设置为true。然后在配置文件页面上,仅在accepted为false的情况下显示邀请。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13103160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档