我在RoR迁移中有6个简单而基本的问题,虽然我用Google搜索并阅读了很多关于它的文章并研究了一个星期,但我并不理解。请帮助我解决这些问题:
1 - 当我创建模型时(例如“rails generate model Football_League”),我在db / migration中看到“create_football_leagues.rb”。我想知道RoR的规则是什么更改我给迁移的名称? (我的迁移名称是FootballLeague,ruby cretaed“create_football_leagues.rb”)
2 - 在该文件中创建类的命名ruby的规则是什么? (Ruby在“create_football_leagues.rb”中创建了一个“CreateFootballLeague”类)
3 - 在我使用rake db:migrate之后,虽然我有3次迁移,但我在下面的cmd中看到:
并且我没有进行任何迁移以进行另外3次迁移,而有时在我使用rake db:migrate进行迁移时,我的所有迁移都会迁移。
4 - 在我输入rake db:migrate之后,在Rake执行“create_football_leagues.rb”后,我转到mysql,我看到一个名为“schema_migrations”的表。在该表中有一些版本的迁移。现在我想知道这样一个表的应用是什么?
5 - 在http://guides.rubyonrails.org中我读到如果我们想要将表的主键从默认id更改为我们自己的字段,我们必须使用:primary_key选项但我不明白如何使用它。如果有人能举一个这个主题的例子。
6 - 这两个命令有什么区别:1 - “rails generate migration footabll”2 - rails生成模型足球。我知道使用“rails generate model football”我们必须在app / model中添加一些额外的文件,但我不明白这些文件的功能。
我的朋友请帮我解决这些根本问题。特别感谢。
*我的RoR版本是3.1.3 *
答案 0 :(得分:2)
create_
+复数类名。 注意您的班级名称不包含下划线。答案 1 :(得分:1)
对于3,4:
假设您创建了两个迁移。然后运行rake db:migrate。 Rails现在已经创建了迁移中定义的两个表。此外,它还在表schema_migrations中编写了这些迁移的版本号。
如果现在添加第三次迁移并再次运行rake db:migrate,Rails将在schema_migrations中看到哪些迁移已经运行并跳过这些迁移(否则您可能会丢失这些表中的数据!)。因此它只运行新的迁移,并再次在schema_migrations中添加此版本。
如果再次运行rake db:migrate,它现在什么都不做。
5: 对于没有彻底了解Rails的初学者,您应该避免更改此设置。
6: - rails生成移民足球 这只会创建迁移文件。如果要更改现有表(例如添加新列),通常使用此命令 - rails生成模型足球 这将生成模型和迁移以创建属于此模型的表。 Rails中的模型是属于特定表的类(简化,模型还有其他用途)。在您的足球模型中,您稍后将拥有与数据库中的足球表直接相关的所有代码。在这里,您可以定义关系和验证。
你应该非常彻底地完成一些教程,以便清楚地理解这些概念。