0

所以我正在制作一个 Rails 应用程序来学习如何使用该框架。

我使用以下方法创建了一个用户:

rails g model User name:string

然后我意识到我的用户还需要另一个属性以及与另一个名为 user_role 的资源的关系。假设我的 UserRole 模型类似于:

rails g model userRole roleName:string

到目前为止,我发现我只能使用迁移来实现更改,但这对我来说相当不方便且不清楚,因为我没有任何旧数据,我只是在调整我的模型。

对菜鸟有什么建议吗?

4

3 回答 3

0

迁移非常有帮助。它跟踪您的架构更改。但是,如果您发现在创建迁移后立即忘记添加字段,您可以编辑旧迁移而不创建新迁移。如果您已经迁移了数据库(使用rake db:migrate),您可以回滚。

rake db:rollback

现在,编辑迁移文件并添加/删除您的字段。完成后,再次迁移

rake db:migrate

当你创建一个单独的模型时,你应该创建一个单独的迁移。否则,日后你自己也会糊涂。顺便说一句,在创建子模型时,您不需要对父迁移进行任何更改。您需要在子表中添加外键。你可以使用这样的东西:

rails g model Comment post:references 

这将添加post_id到评论表中。

于 2012-11-15T04:23:29.430 回答
0

您可以尝试使用非数据库支持的类似 ActiveModel 的模型。例如,Mongoid 或 Datamapper。许多 NoSQL 解决方案不需要迁移来更改模型。

于 2012-11-15T04:47:54.413 回答
0

尝试这个:

rails g model ModelName --migration=false
于 2017-03-10T06:30:25.933 回答