Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 2个表,1个模型_Ruby On Rails_Ruby_Ruby On Rails 3_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails Rails 2个表,1个模型

Ruby on rails Rails 2个表,1个模型,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.2,我对ruby/rails比较陌生,我有以下问题: 我正在开发一个调度应用程序,有一个名为Classes的模型和另一个名为ClassEntries的模型。它们之间的关系是每个用户每学期可以有多个班级条目,每个条目都与一个班级相关。班级表中的每个记录都属于特定的大学。一个用户可以在ClassEntries表中有一个学期(通常为5个学期)的多个条目。他们的课程表由所有具有相同学期ID的班级条目组成 我不确定是否应该有第三个名为Schedule的模型,它为手头的用户将类条目和类模型中的信息汇集在一起。我

我对ruby/rails比较陌生,我有以下问题:

我正在开发一个调度应用程序,有一个名为Classes的模型和另一个名为ClassEntries的模型。它们之间的关系是每个用户每学期可以有多个班级条目,每个条目都与一个班级相关。班级表中的每个记录都属于特定的大学。一个用户可以在ClassEntries表中有一个学期(通常为5个学期)的多个条目。他们的课程表由所有具有相同学期ID的班级条目组成

我不确定是否应该有第三个名为Schedule的模型,它为手头的用户将类条目和类模型中的信息汇集在一起。我最初是用PHP编写这个功能的,我只是使用MySQL连接来收集必要的信息。在Rails中,似乎应该有更好的方法来实现这一点

在Rails中实现这一点的最佳方式是什么


非常感谢

所以,您需要的是Rails中的关联

您将拥有以下内容:

def User < ActiveRecord::Base
  has_many :course_entries
  has_many :courses, :through => :class_entries
end

def CourseEntry < ActiveRecord::Base
  belongs_to :user
  belongs_to :course
end

def Course < ActiveRecord::Base
  has_many :course_entries
  has_many :users, :through => :class_entries
end
def User:class\u条目
结束
def CourseEntry:类\u条目
结束
设置了这些关联后,Rails将允许您执行以下操作
some\u user.courses
some\u courses.users
,它将通过CourseEntry为您加入


让我知道这是否有帮助。如果您需要我更深入地了解,请告诉我。

您的课程模型是否了解本学期的知识?有很多方法可以实现你想做的事情。如果您已经编写了PHP功能,那么Rails方式应该很容易实现。目前我没有一个学期模型。我应该吗?由于Classes表中的记录独立于学期或时间表,因此ClassEntries需要属于一个学期,对吗?您说过您已经在PHP中实现了这一点。您的数据库表看起来像什么(模型和关系)任何有助于我们了解您试图做什么的信息。我还是有点搞不懂你所说的类条目是什么意思,类条目到底意味着什么?如果我理解正确的话,ClassEntry只是指用户在某个学期学习该课程?而且,我认为命名模型“class”会有问题,因为它会与Ruby on Rails发生冲突。是的,这正是ClassEntry的含义。它将用户、班级和学期联系在一起。如果有命名冲突,我可以将类重命名为课程。在PHP中,我执行的是原始SQL(我宁愿在rails中尽可能减少)。例如:“SELECT*FROM classentries LEFT JOIN classentries.class_id=classes.id WHERE classentries.user_id=1”谢谢。你提到课程和班级的条目。这些是可互换的还是不同的实体?对不起,这是一个打字错误。如果类名为CourseEntry,那么如果其命名的类条目使用:class\u条目,则应使用:course\u条目。