検証エラーの後にselect_dayの値を保持するにはどうすればよいですか? 次のようにデフォルト値を設定できます。
f.select_day 1, {prefix: 'user[birthdate]'}
しかし、モデルから値を設定するためにこのようにすることはできません:
f.select_day :birthdate, {prefix: 'user[birthdate]'}
エラー:
ActionView::Template::Error (undefined method `day' for :birthdate:Symbol)
それは可能ですか、それとも params から手動で値を取得して設定する必要がありますか?
モデル:
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]'}