加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby on Rails:如何迁移模型上的更改?

发布时间:2020-12-16 19:23:29 所属栏目:百科 来源:网络整理
导读:在Rails应用程序中,如何迁移我在模型中所做的更改?例如,我知道如果我创建一个带有命令“rails g model Person name:string”的模型,也会创建一个迁移.但是,如果在此步骤之后我转到创建的模型“Person”并添加一个新属性,是否会将此新属性自动添加到迁移中
在Rails应用程序中,如何迁移我在模型中所做的更改?例如,我知道如果我创建一个带有命令“rails g model Person name:string”的模型,也会创建一个迁移.但是,如果在此步骤之后我转到创建的模型“Person”并添加一个新属性,是否会将此新属性自动添加到迁移中以便以后在数据库中持久化?
或者我是从错误的一面看这个,并且应该将一个属性添加到迁移中,然后添加到模型中?

问候

解决方法

您无法真正向模型“添加”属性,您可以通过创建迁移文件并运行它来实现 – Rails根据数据库中的列来确定模型的属性.但是,如果您希望能够通过批量分配更新属性,则需要在模型中添加一行以将属性列入白名单.这就是为什么你经常在activerecord模型中看到这样的一行:
attr_accessible :name

但这是可选的,而不是添加属性所必需的.

要将新属性实际添加到模型中,请首先使用以下命令创建迁移:

rails g migration AddAddressToPerson address:string

这将在db / migration /目录中创建迁移文件. (rails表示“AddXXXToYYY”和“RemoveXXXFromYYY”形式表示“向模型XXX添加(或删除)新列”,有关详细信息,请参阅documentation).在这种情况下,我添加了一个名为address的属性,它是一个字符串,但您可以将其更改为您想要的任何内容.

然后要实际更新数据库,您需要使用rake运行迁移:

rake db:migrate

最后,如果要在该属性上允许批量赋值,请将该属性添加到attr_accessible的参数列表中:

attr_accessible :name,:address

应该这样做.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读