У меня есть модель DiscountCode с атрибутом кода (строка). Моя модель бронирования принадлежит_to: discount_code. В форме бронирования, я не хочу, чтобы положить ниспадающее меню, чтобы выбрать DiscountCode, я просто хочу строковое поле (с использованием SimpleForm):Rails form использовать текстовое поле для объекта
f.input :discount_code
, где пользователь может ввести, например, «XMAS2015». Я поворачиваюсь строка в объекте DiscountCode в контроллере:
new_params[:discount_code] = DiscountCode.find_by code: params[:booking][:discount_code]
... и я использую new_params построить бронирование. Если ошибок нет, все идет хорошо, но если есть и форма снова отображается поле строка заполняется объект вместо кода:
#<DiscountCode:0x0000000baf2d68>
Я не могу повернуть его назад, как это:
@booking.discount_code = @booking.discount_code.code
потому что @ booking.discount_code должен быть DiscountCode, а не строкой.
Есть ли какое-либо решение для изменения объекта обратно в строку в форме или мне нужно использовать другое имя поля, например discount_code_text?
Отлично, спасибо. – edhel