1

我刚刚学习了关于数据库上的 CRUD 的第一个 Rails 僵尸课程。

我不明白也没有解释的是有一个名为 的表Zombies,但您使用它访问它Zombie.find。刚刚完成了一门标准 Ruby 课程,对我来说这看起来像是一个类和一个方法,但类与表名不同。

在教程视频中也是如此 - 他的表被调用tweets,但他使用Tweet.find. 不应该tweets.find吗?

为什么表名与您访问这些表的方式不匹配?您应该如何知道引用表的名称,就好像它与表的名称不同一样?

4

1 回答 1

3

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 在所有地方都使用类。

于 2015-01-30T23:46:54.323 回答