Как добавить атрибут в модель? - PullRequest
36 голосов
/ 16 июня 2011

В рельсах я генерирую модель с двумя строками и хотел бы добавить больше. Как бы я поступил так?

Ответы [ 4 ]

48 голосов
/ 01 июня 2012

Да, решение @JCorcuera применимо, но я предлагаю применить немного больше информации к Rails, чтобы выполнить наше требование.Попробуйте этот подход:

rails generate migration add_columnname_to_tablename columnname:datatype

Например:

rails generate migration add_password_to_users password:string
38 голосов
/ 16 июня 2011

Active Record сопоставляет столбцы ваших таблиц с атрибутами в вашей модели, поэтому вам не нужно указывать рельсам, что вам нужно больше, вам нужно создать больше столбцов, и рельсы их обнаружат, атрибуты будутдобавляется автоматически.

Вы можете добавить больше столбцов к вашей таблице через миграции :

rails generate migration AddNewColumnToMyTable column_name:column_type(string by default)

Пример:

rails generate migration AddDataToPosts views:integer clicks:integer last_reviewed_at:datetime 

это сгенерируетfile:

db/2017.....rb

Откройте и добавьте, если необходимо, измените его:

self.up
  #add_column :tablename, :column_name, :column_type
  add_column :posts, views, :integer
  add_column :posts, clicks, :integer, default: 0
end

Надеюсь, это поможет.

2 голосов
/ 03 июля 2015

Просто чтобы сделать это еще проще, вы можете сделать:

rails g migration add_something_to_model something:string something_else:integer
2 голосов
/ 24 октября 2013

Если вы используете Rails 4.x, теперь вы можете генерировать миграции со ссылками, например:

rails генерируют миграцию AddUserRefToProducts пользователь: ссылки

Как вы можете видеть на направляющих рельсов

...