【发布时间】:2012-10-28 02:15:22
【问题描述】:
我对 ruby/rails 比较陌生,我有以下问题:
我正在开发一个调度应用程序,并且有一个名为 Classes 的模型和另一个名为 ClassEntries 的模型。它们之间的关系是每个用户每学期可以有多个班级条目,每个班级都与一个班级有关。 Classes 表中的每条记录都属于特定的大学。一个用户可以在 ClassEntries 表中有多个条目用于 1 个学期(通常为 5 个)。他们的日程表由具有相同学期 ID 的所有 ClassEntries 组成。
我不确定是否应该有第三个模型,称为 Schedule,它将 ClassEntries 和 Classes 模型中的信息汇集到手边的用户。我最初用 PHP 编写了这个功能,我只是使用 MySQL JOIN 来收集必要的信息。在 Rails 中,似乎应该有更好的方法来实现这一点。
在 Rails 中解决此问题的最佳方法是什么?
非常感谢
【问题讨论】:
-
您的班级模型是否了解学期?有很多方法可以去做你想做的事。如果您已经编写了 PHP 功能,那么 Rails 方式应该是轻而易举的。
-
目前我没有学期模型。我是不是该?由于 Classes 表中的记录独立于学期或时间表,因此 ClassEntries 需要属于一个学期,对吧?
-
你说你已经在 PHP 中实现了这个。您的数据库表是什么样的(模型和关系)任何有关这方面的信息都将帮助我们了解您正在尝试做什么。我仍然有点困惑您所说的 ClassEntries 究竟是什么需要 ClassEntry?如果我理解正确,ClassEntry 只是意味着用户在特定学期参加该课程?
-
另外,我认为你在命名模型“类”时会遇到问题,因为它会导致与 Ruby on Rails 发生冲突。
-
是的,ClassEntry 就是这样。它将用户、班级和学期联系在一起。如果有命名冲突,我可以将 Class 重命名为 Course。在 PHP 中,我正在执行原始 SQL(我宁愿在 rails 中尽可能地减少它)。一个例子:“SELECT * FROM classentries LEFT JOIN classes ON classentries.class_id = classes.id WHERE classentries.user_id = 1”
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2