У меня есть форма для обновления, где я хочу, чтобы пользователь обновил дату. Дата всегда должна быть NEWER, чем дата, которая в настоящее время находится в базе данных, поэтому я хочу, чтобы мой скрипт проверял ее после того, как пользователь нажал кнопку отправки. Я пришел далеко:rails check complete date_select и time_select param
<%= simple_form_for(calendar, :html => { :method => :put, :name => 'extend_link' }) do |f| %>
<p>Select the new date (must be newer than the current date): <%= f.date_select :end_at %> at <%= f.time_select :end_at, { :ignore_date => true } %></p>
<% end %>
стандартное обновление положить в мой контроллер, обновление календаря модели
def update
@calendar = current_user.calendar.find(params[:id])
respond_to do |format|
if @calendar.update_attributes(params[:calendar])
format.html { redirect_to calendar_path, notice: 'The end date was extended.' }
format.json { head :no_content }
end
end
end
Я проверил источник после того, как форма была оказана, чтобы понять, как дата и время отбора работ, а также после изучения много, ясно, что дата в настоящее время разделен на несколько частей, прежде чем он «слиты» в моей модели и колонки end_at
calendar[end_at(3i)]
calendar[end_at(2i)]
....
, но по какой-то причине я не могу получить доступ к полным параметрам [: end_at] после отправки формы. Однако, насколько это возможно, модель может быть обновлена в одном виде? Я сошел с ума.
Это может быть так просто:
if params[:end_at] < @calendar.end_at
puts "The new ending date is not after the current ending date."
else
@calendar.update_attributes(params[:calendar])
end
почему она не работает и как я могу решить мою проблему?
Спасибо за любую помощь.
Perfect. Но мне пришлось перевернуть оператор, чтобы он работал. Теперь это просто отлично :) спасибо! –
DonMB