Rails: Modifying a Model Generated by Scaffolding

前端 未结 3 1392
逝去的感伤
逝去的感伤 2020-12-24 02:10

How do you modify a model you\'ve generated using modeling? For example, the model myModel originally had columns a, b and c, but I now want to add column d.

相关标签:
3条回答
  • 2020-12-24 02:53

    Rails 3 and above use the following code :

    rails generate migration add_fieldname_id_to_tablename fieldname:string
    

    Rails 2

    ruby script/generate migration add_fieldname_to_tablename fieldname:string 
    

    This no longer works and returns the following error in Rails 3:

    ruby: No such file or directory -- script/generate (LoadError)

    0 讨论(0)
  • 2020-12-24 02:55

    The best answer I've found so far is run this from your project root:

    ruby script/generate migration add_d_column_to_myModel 
    

    Then edit the new migration file located in db/migration to look something like:

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

    The last step will be to update your views accordingly.

    Answer found here

    Table functions found here

    0 讨论(0)
  • 2020-12-24 03:07
    ruby script/generate migration add_fieldname_to_tablename fieldname:string
    

    this is the shortcut method to do exactly what you want. if you need more control, or if you have a lot of columns to add, Andrew H's answer will work fine too.

    0 讨论(0)
提交回复
热议问题