我今天一整天都在寻找解决方案,但无法找到答案。 这是一个简单的预约系统。 我尝试显示错误消息并呈现给新的'当用户提交无效日期/时间时(例如:周六,周日/ 09:00-17:00之间的范围)。我一直收到错误"表格中的第一个参数不能包含nil或为空#34;当条件落入验证时。 此外,当其处于无效状态时,不会显示Flash消息,而是重定向到所需页面。
在_form.html.erb
中<%= form_for @appointment do |f| %>
<%= f.date_field :appointment_date, :min => Date.today %>
<%= time_field_tag 'appointment[appointment_time]' %>
<%= f.submit "Submit"%>
<% end %>
在约会控制器(类AppointmentsController&lt; ApplicationController)
中def create
appointment = Appointment.new appointment_params
date = params[:appointment][:appointment_date] + ' ' + params[:appointment][:appointment_time]
appointment.appointment_date = date
check = DateTime.parse(appointment.appointment_date.to_s)
if check.wday == 6 || check.wday == 7
flash[:notice] = "Please chose Mon-Fri."
render :new
elsif check.hour > 9 || check.hour < 17
flash[:notice] = "Please chose the range between 09:00-17:00."
render :new
elsif
appointment.save
flash[:notice]= "Appointment is saved."
redirect_to appointment
else
render :new
end
end
flash [:notice]在任何情况下都不会出现。 渲染:new不起作用并将错误作为&#34;表单中的第一个参数不能包含nil或为空&#34;
提前致谢。
答案 0 :(得分:0)
尝试flash.now.notice = "Please chose the range between 09:00-17:00."