我到处搜索过,我认为解决方案很简单,但我过于复杂了。
基本上我有一个具有以下属性的约会模型:
--- !ruby/object:Appointment
attributes:
id:
time:
user_id:
created_at:
updated_at:
时间:是日期时间属性
在控制器中,我有一个标准的创建动作:
class AppointmentsController < ApplicationController
def create
@appointment = Appointment.create(appointment_params)
current_user.appointment = @appointment
if @appointment.save
flash[:success] = "Appointment Booked!"
redirect_to appointments_path
else
redirect_to appointments_path
end
private
def appointment_params
params.require(:appointment).permit(:time, :test1, :test2)
end
end
在创建视图中,我有一个包含以下代码的表单:
<%= form_for(@appointment) do |f| %>
<div class="field">
<%= f.label :time %><br>
<%= f.datetime_select(:time, {start_year: 2015, end_year: 2016, start_hour: 9, end_hour: 18, minute_step: 60}) %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
现在这一切都保存得非常好并且做了我想要的事情,用户使用日期时间选择器创建约会并且保存没有任何问题。
然而,当涉及到样式时,它变得困难,因为我不知道如何分解datetime_select。
我想要做的是使用我发现的jQuery日期时间选择器,但我不知道如何将params传递给我的控制器以构建一个日期时间以便能够保存到时间: 属性
答案 0 :(得分:0)
有很多方法可以做到这一点,其中一种方法是使用简单的f.textbox,并在此输入上使用JQuery datepicker。
更专业的方法是覆盖datetime_select。
示例:
在app / inputs
中创建 DatePickerInput 类module SimpleForm
module Inputs
class DateTimePickerInput < Base
def input
@builder.text_field(attribute_name,input_html_options)
end
end
end
end
使用此$("input.date_time_picker").datepicker();
创建JQuery Datepicker
使用<%= f.input :deadline, :as => :date_time_picker %>