Rails日期选择参数允许

时间:2018-08-22 04:35:17

标签: html ruby-on-rails forms

我正在使用以下代码将date参数发送到rails。

<%= form_for @user, remote: true do |f| %>
  <div class="row">
    <select class="form-control" id="years" name="user[birthday(1i)]">
    </select>

    <select class="form-control" id="months" name="user[birthday(2i)]">
    </select>

    <select class="form-control" id="days" name="user[birthday(3i)]">
    </select>
  </div>
<% end %>

但是后端会收到这样的消息

{
  "user"=>
    "birthday(1i)"=>"2018",
    "birthday(2i)"=>"8",
    "birthday(3i)"=>"13"
}

如何使其成为哈希,因此我可以在滑轨中使用strong parameter

EX:

 def update_params
  params.permit(:birthday)
 end

1 个答案:

答案 0 :(得分:0)

您应该能够将其作为date存储在数据库中,并在表单内使用date_select

schema.rb

create_table "users", force: :cascade do |t|
    t.date "birthday"
end

控制器

def user_params
  params.require(:user).permit(:birthday)
end

视图

<%= form_for @user, remote: true do |f| %>
    <div class="row">
        <%= f.date_select :birthday, {
            order: [:month, :day, :year],
            date_separator: "/",
            prompt: {
                month: 'mm',
                day: 'dd',
                year: 'yyyy',
            },
         } %>
    </div>
<% end %>