Объект ActiveRecord в Rails сохраняет свою идентичность в параметре ID. Если идентификатор установлен, Rails будет знать, чтобы обновить запись в базе данных с этим идентификатором.
save
фактически является основным способом создания, обновления или любого сохранения объекта в базе данных. Другие методы, такие как update_attributes
, являются просто сахаром, который использует save
в своей основе.
Да, есть много хороших вещей, которые вы получите ModelName.find_or_create_by_name("Summer")
Но если вы передадите Id в методе save
, который будет обновлен, а если идентификатор не будет передан, будут create
данные.
Всегда, первичный ключ в Rails должен быть «id», но вы использовали «my_id», что также может быть проблемой.