所以我正在制作一个Rails应用程序来学习如何使用该框架。
我使用:
创建了一个用户rails g model User name:string
然后我意识到我的用户还需要另一个属性以及与另一个名为user_role的资源的关系。 说我的UserRole模型类似于:
rails g model userRole roleName:string
到目前为止,我发现我只能通过迁移来实现更改,但这对我来说相当不方便且不清楚,因为我没有任何旧数据,我只是调整我的模型。 / p>
有关菜鸟的任何建议吗?
答案 0 :(得分:0)
迁移非常有帮助。它会跟踪您的架构更改。但是,如果您发现在创建迁移后忘记立即添加字段,则可以编辑旧迁移而无需创建新迁移。如果您已经迁移了数据库(使用rake db:migrate
),则可以回滚。
rake db:rollback
现在,编辑迁移文件并添加/删除您的字段。完成后,再次迁移
rake db:migrate
创建单独的模型时,您应该创建单独的迁移。否则,将来你会感到困惑。顺便说一句,在创建子模型时,父迁移不需要任何更改。您需要在子表中添加外键。你可以使用这样的东西:
rails g model Comment post:references
这会在评论表中添加post_id
。
答案 1 :(得分:0)
您可以尝试使用非数据库支持的类似ActiveModel的模型。例如,Mongoid或Datamapper。许多NoSQL解决方案不需要迁移模型的更改。
答案 2 :(得分:0)
试试这个:
rails g model ModelName --migration=false