Rails:flash消息在url中显示为param

时间:2015-03-12 04:46:15

标签: ruby-on-rails flash

您好我的所有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消息。

由于

1 个答案:

答案 0 :(得分:6)

成功和错误键被用作show_orders_ofert_path的参数,因为没有括号。在路径助手参数周围添加括号:

redirect_to show_orders_ofert_path(@order.ofert), success: "Updated!."