Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 有没有一种不用迁移就能改造新Rails模型的方法?_Ruby On Rails_Ruby On Rails 3_Activerecord_Scaffolding - Fatal编程技术网

Ruby on 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应用程序来学习如何使用该框架

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

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

虽然这个代码片段是受欢迎的,并可能提供一些帮助,但它将是如何以及为什么解决这个问题。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。