我正在使用以下代码将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
答案 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 %>