Если media.id
не назначено, возможно, при сохранении у вас возникла ошибка, и media.save
вернул false
, хотя, поскольку вы не проверяли его, вы не заметили.
Чтобы избежать этого, нужно запросить более строгое сохранение:
def something
media = Media.new(params[:media])
media.save!
rescue ActiveRecord::RecordInvalid
# Something couldn't be saved
render(...)
end
Как правило, если запись сохраняется правильно, media.errors.full_messages
будет пустым массивом.
Если ошибок нет, возможно, один из ваших фильтров before_
или after_
вернул false и не позволил сохранить его, хотя это не так часто.