Rails:修改脚手架生成的模型

And*_*ton 24 ruby model ruby-on-rails

如何修改使用建模生成的模型?例如,模型myModel最初有列a,b和c,但我现在想要添加列d.

Boo*_*reg 25

Rails 3及以上版本使用以下代码:

rails generate migration add_fieldname_id_to_tablename fieldname:string
Run Code Online (Sandbox Code Playgroud)

Rails 2

ruby script/generate migration add_fieldname_to_tablename fieldname:string 
Run Code Online (Sandbox Code Playgroud)

这不再有效,并在Rails 3中返回以下错误:

ruby:没有这样的文件或目录 - script/generate(LoadError)


Luk*_*uke 19

ruby script/generate migration add_fieldname_to_tablename fieldname:string
Run Code Online (Sandbox Code Playgroud)

这是完全按照您的意愿执行的快捷方法.如果你需要更多控制,或者你需要添加很多列,Andrew H的答案也可以正常工作.


And*_*ton 12

到目前为止我找到的最佳答案是从您的项目根目录运行:

ruby script/generate migration add_d_column_to_myModel 
Run Code Online (Sandbox Code Playgroud)

然后编辑位于db/migration中的新迁移文件,如下所示:

  def self.up
    add_column :myModel, :d, :string
  end

  def self.down
    remove_column :myModel, :d
  end
Run Code Online (Sandbox Code Playgroud)

最后一步是相应地更新您的视图.

答案在这里找到

表函数在这里找到

  • 我很高兴你回答了自己的问题.很多人可能有类似的问题. (3认同)
  • 我回答了我自己的问题有两个原因.首先,这是我找到的最佳答案,但我是Rails的新手,并认为可能有一种更好的方式我找不到.其次,问题尚未发布在StackOverflow上,所以我决定添加它. (2认同)