Ruby on rails Rails:date\u选择验证

Ruby on rails Rails:date\u选择验证,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我正在公司网站上的表单中将文本\u字段修改为日期\u选择。我是RoR的新手,我有一个错误,即born\u on不能为空。 这是新代码 <div class="lobbyForm-group"> <%= f.label :born_on, class: 'lobbyForm-label' %> <%= f.date_select 'user', :born_on, {:order => [:day, :month, :year], :start_

我正在公司网站上的表单中将
文本\u字段
修改为
日期\u选择
。我是RoR的新手,我有一个错误,即
born\u on
不能为空。 这是新代码

<div class="lobbyForm-group">
    <%= f.label :born_on, class: 'lobbyForm-label' %>
    <%= f.date_select 'user', :born_on, {:order => [:day, :month, :year], :start_year => 2001, :end_year => 1985, :prompt => true, :selected => Date.today}, {:class => "lobbyForm-control lobbyForm-control-selectDate"}  %>
</div>
当我单击“验证”时,我在日志中有这个输出:

"born_on(3i)"=>"3", "born_on(2i)"=>"12", "born_on(1i)"=>"2001" 
以下是控制器中的相关代码:

protected
  def after_sign_up_path
    new_lobby_mentee_registrations_profile_path
  end
  def user_params
    permitted_params = [:first_name, :last_name, :email, :password, :password_confirmation, :born_on, :marketing_communications_accepted]
    params.require(:user).permit(*permitted_params)

    params[:user].merge mentee: true
  end
  def ensure_required_user_information
    if current_user.profile.blank?
      redirect_to new_lobby_mentee_registrations_profile_path
    end
  end
end

我遗漏了什么?谢谢你的帮助。

你必须将日期
散列
转换为
日期
用户参数中键入如下方法:

date = Date.new params[:user]["born_on(1i)"].to_i, params[:user]["born_on(2i)"].to_i, params[:user]["born_on(3i)"].to_i 
params[:user][:born_on] = date

permitted_params = [:first_name, :last_name, :email, :password, :password_confirmation, :born_on, :marketing_communications_accepted]
params.require(:user).permit(*permitted_params)

params[:user].merge mentee: true

你能把你的相关代码放到控制器里吗?这样我就可以帮你了?请仔细检查数据库中的文件名,是
born_date
还是
born_on
?我数据库中的文件名是由于我在帖子中更改它的错误而产生的。控制器不识别用户[“born_on(1i)”,我有这个错误:未定义的局部变量或“user”方法,对不起,我的错误。更新了答案。
date = Date.new params[:user]["born_on(1i)"].to_i, params[:user]["born_on(2i)"].to_i, params[:user]["born_on(3i)"].to_i 
params[:user][:born_on] = date

permitted_params = [:first_name, :last_name, :email, :password, :password_confirmation, :born_on, :marketing_communications_accepted]
params.require(:user).permit(*permitted_params)

params[:user].merge mentee: true