Проблема со всеми этими ответами состоит в том, что они устанавливают в поле значение по умолчанию, даже если вы пытаетесь редактировать свою запись.
Вам необходимо установить значение по умолчанию для вашего существующего значения, а затем только установить его на фактическое значение по умолчанию, если у вас нет значения. Вот так:
f.select :field, options_for_select(value_array, f.object.field || default_value)
Для тех, кто не знаком с f.object.field
, вы всегда используете f.object
, затем добавьте имя вашего поля в конце этого.