Если ваша база данных изменяется, используйте миграцию.Если вы просто добавляете методы в свою модель, вам не нужно выполнять миграцию.
Пример:
Мы начинаем, и у нас просто есть 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