Как я могу сохранить значение select_day после ошибки проверки? Я могу установить значение по умолчанию для него, как это:select_day/year/month preset value
f.select_day 1, {prefix: 'user[birthdate]'}
Но я не могу сделать так, чтобы установить значение от модели:
f.select_day :birthdate, {prefix: 'user[birthdate]'}
ошибка:
ActionView::Template::Error (undefined method `day' for :birthdate:Symbol)
Возможно ли, или мне нужно получить и установить значение из параметров вручную?
модель:
class User
include ActiveModel::Model
include ActiveRecord::AttributeAssignment
attr_accessor :birthdate
def self.build(request, params = {})
u = self.new
u.assign_attributes(params)
u
end
end
контроллер:
def new
@user = User.new
end
def create
@user = User.build(params[:user])
end
вид:
= form_for @user do |f|
f.select_day 1, {prefix: 'user[birthdate]'}
f.select_month 1, {prefix: 'user[birthdate]'}
f.select_year 1990, {prefix: 'user[birthdate]'}
http://stackoverflow.com/questions/2916995/keep-form-fields-filled-after-an-error-ror –
@HasanIqbalAnik Это не работает, как я уже говорил. – freemanoid
@freemanoid Посмотрите на свою ошибку. Select_day ожидает дату ([docs] (http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-select_day)). Я предполагаю, что число хранится в этом месте. Можешь подтвердить? – screenmutt