【发布时间】:2014-03-31 23:46:53
【问题描述】:
我有一个 Ruby on Rails 3.2 应用程序,其中包含从 CSV 请求重定向到 HTML 请求的操作,但重定向后 flash[:notice] 不可用。
第一个动作如下所示:
def first_action
respond_to do |format|
format.html do
redirect_to other_action_controller_url, notice: "This message will be displayed."
end
format.csv do
redirect_to other_action_controller_url, notice: "The message will NOT be displayed."
end
end
end
因此,如果您请求/controller/first_action.csv,它会重定向到/controller/other_action,但不会出现flash 消息。另一方面,如果您请求/controller/first_action,它会重定向到/controller/other_action,并且flash 消息有效。
那么如何才能从一种格式重定向到另一种格式并成功地将消息传递到flash?
【问题讨论】:
-
能否也包含
other_action代码? -
我假设您在布局中有一些代码来显示 Flash 消息?如果是这样,请尝试将 flash 设置为:
flash[:notice] = 'Foo。 -
是的,我有代码来显示 flash 消息,我确实尝试先明确设置 flash[:notice]。如果相同的块在 format.html 部分中,并且您在没有 .csv 扩展名的情况下发出请求,则重定向会将 flash 传递到下一个扩展名。似乎在 CSV 格式请求中可能会忽略或丢弃闪存?
标签: ruby-on-rails ruby redirect format