您好我的所有Flash消息都以正常方式工作,但我的某个控制器中有一个操作,其中flash消息不起作用。
这是观点:
<%= form_tag update_status_order_path(update_status), method: :put do |f| %>
<%= select(:order, :status, [['Active', 1], ['Inactive', 0]]) %>
<%= submit_tag "Update" %>
<% end %>
这是控制器动作
def update_status
if @order.update_order_status! params[:order][:status]
redirect_to show_orders_ofert_path @order.ofert, success: "Updated!."
else
redirect_to show_orders_ofert_path @order.ofert, error: "Error."
end
end
当我发送表单时,操作正确执行,但flash消息未显示在布局中,而是作为param显示在url中,只需单击Update按钮后重新加载并显示如下所示的url:
http://localhost:3000/oferts/48/show_orders?success=Updated!
我已经尝试将put更改为patch但是它没有用,甚至更改了使用respons_to块的操作,但是它没有用,有什么想法?
这个问题只发生在特定的操作上,因为我通过其他操作正常显示了flash消息。
由于
答案 0 :(得分:6)
成功和错误键被用作show_orders_ofert_path的参数,因为没有括号。在路径助手参数周围添加括号:
redirect_to show_orders_ofert_path(@order.ofert), success: "Updated!."