我刚刚学习了关于数据库上的 CRUD 的第一个 Rails 僵尸课程。
我不明白也没有解释的是有一个名为 的表Zombies
,但您使用它访问它Zombie.find
。刚刚完成了一门标准 Ruby 课程,对我来说这看起来像是一个类和一个方法,但类与表名不同。
在教程视频中也是如此 - 他的表被调用tweets
,但他使用Tweet.find
. 不应该tweets.find
吗?
为什么表名与您访问这些表的方式不匹配?您应该如何知道引用表的名称,就好像它与表的名称不同一样?
我刚刚学习了关于数据库上的 CRUD 的第一个 Rails 僵尸课程。
我不明白也没有解释的是有一个名为 的表Zombies
,但您使用它访问它Zombie.find
。刚刚完成了一门标准 Ruby 课程,对我来说这看起来像是一个类和一个方法,但类与表名不同。
在教程视频中也是如此 - 他的表被调用tweets
,但他使用Tweet.find
. 不应该tweets.find
吗?
为什么表名与您访问这些表的方式不匹配?您应该如何知道引用表的名称,就好像它与表的名称不同一样?
Rails 会自动将您的模型名称复数,即Zombie
用作表名,zombies
. 这个想法是模型名称代表一个僵尸,而表格代表许多僵尸。当您搜索表格时,能够使用名称 Zombies 会更有意义,但 rails 会为您的模型创建一个名为 Zombie 的类,而不是创建另一个名为 Zombies 的类,rails 为您的 Zombie 类提供方法,通过继承,允许您搜索表。
在代码中的不同点,您将不得不使用模型名称,Zombie
而在代码中的其他点,您将不得不使用表名、zombies
--experience 和文档,仔细阅读您的教程会提醒您至于使用哪个。
请注意,rails 将使您的模型名称 Mouse 复数 - 不是 mouses - 而是 mouse。
刚刚完成了一门标准 Ruby 课程,对我来说这就像一堂课
是的,Zombie
是一个类名。如果您查看app/models/zombie.rb
,您将看到类定义。
而且,如果您查看 db/migrate,您应该会看到一个名为的文件20130731063014_create_zombies.rb
,并且该文件内将是一个名为CreateZombies
. rails 在所有地方都使用类。