Ruby on rails 有没有一种不用迁移就能改造新Rails模型的方法?
因此,我正在制作一个Rails应用程序来学习如何使用该框架 我使用以下方法创建了一个用户:Ruby on rails 有没有一种不用迁移就能改造新Rails模型的方法?,ruby-on-rails,ruby-on-rails-3,activerecord,scaffolding,Ruby On Rails,Ruby On Rails 3,Activerecord,Scaffolding,因此,我正在制作一个Rails应用程序来学习如何使用该框架 我使用以下方法创建了一个用户: rails g model User name:string 然后我意识到我的用户还需要另一个属性以及与另一个资源的关系,称为user\u role。 假设我的用户角色模型类似于: rails g model userRole roleName:string 到目前为止,我发现我只能通过迁移来实现更改,但这对我来说相当不方便,也不清楚,因为我实际上没有任何旧数据,我只是在调整我的模型 任何关于noob
rails g model User name:string
然后我意识到我的用户还需要另一个属性以及与另一个资源的关系,称为user\u role。
假设我的用户角色模型类似于:
rails g model userRole roleName:string
到目前为止,我发现我只能通过迁移来实现更改,但这对我来说相当不方便,也不清楚,因为我实际上没有任何旧数据,我只是在调整我的模型
任何关于noob迁移的建议都非常有用。它跟踪您的模式更改。但是,如果在创建迁移后发现忘记立即添加字段,则可以编辑旧迁移而不创建新迁移。如果已经迁移了数据库(使用
rake db:migrate
),则可以回滚
rake db:rollback
现在,编辑迁移文件并添加/删除字段。完成后,再次迁移
rake db:migrate
创建单独的模型时,应创建单独的移植。否则,将来你会感到困惑。顺便说一句,在创建子模型时,不需要对父迁移进行任何更改。您需要在子表中添加外键。您可以使用以下内容:
rails g model Comment post:references
这将在注释表中添加
post_id
您可以尝试一个非数据库支持的ActiveModel,比如model。例如,Mongoid或Datamapper。许多NoSQL解决方案不需要迁移来更改模型。尝试以下方法:
rails g model ModelName --migration=false
虽然这个代码片段是受欢迎的,并可能提供一些帮助,但它将是如何以及为什么解决这个问题。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。