Если ваша база данных изменена, используйте миграцию. Если вы просто добавляете методы в свою модель, не нужно переносить их.
Пример:
Мы начинаем и мы просто first_name, last_name. Мы хотим, чтобы сохранить их в базе данных, поэтому мы имеем миграцию, которая делает:
/app/models/human.rb
# empty
/db/migrate/xxxxx.rb
add_column :humans, :first_name, :string
add_column :humans, :last_name, :string
Тогда мы поженимся, поэтому мы хотим, чтобы отслеживать, что
/app/models/human.rb
belongs_to :spouse
- Мы должны иметь spouse_id поле в базе данных, поэтому нам нужна миграция
/db/migrate/xxxxx.rb
add_column :humans, :spouse_id, :integer
- тогда у нас есть ребенок. ... На самом деле, мы все были детьми в какой-то момент, но чтобы это было просто, у нас будут люди и их потомки
/app/models/offspring.rb
belongs_to :human
/db/migrate/xxxxx.rb
create_table ...
- Однако, нет необходимости добавлять что-либо к человеческой миграции, так как таблицы не изменить здесь. Нам нужно добавить:
/app/models/human.rb
has_many :offspring
- Если вы хотите быть в состоянии получить в, легко, ваш первенец, вы бы просто добавить метод вашей модели. Нет необходимости миграции здесь:
/app/models/human.rb
def first_born
offspring.first
end
, что было очень полезно Джесси. Большое спасибо за Ваш ответ. – denniss