Rails 4不能使用flash [:notice]并渲染

时间:2014-08-28 10:39:25

标签: ruby-on-rails-4

我今天一整天都在寻找解决方案,但无法找到答案。 这是一个简单的预约系统。 我尝试显示错误消息并呈现给新的'当用户提交无效日期/时间时(例如:周六,周日/ 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;

提前致谢。

1 个答案:

答案 0 :(得分:0)

尝试flash.now.notice = "Please chose the range between 09:00-17:00."