我正在尝试在redirect_to
内设置闪存变量,但遇到问题。
当我使用它时,哈希被传递,但没有无关紧要的访问权限。 (即:我可以使用'key'
但不能使用:key
)
redirect_to root_url, :flash=>params.merge({:error=>'no-results'}.with_indifferent_access)
我也可能接近这个完全错误。这是一个请求不同操作的搜索表单,如果没有结果,则会重定向回搜索表单(在root_url
上)。我正在传递params
,所以我可以将表单字段设置回用户选择的内容。
谢谢!
编辑:我之前发布的“工作正常”的示例实际上并没有正常工作。
答案 0 :(得分:0)
你想要以无关紧要的方式查看什么?你现在的方式是merge
的参数是被转换的。也许你正在寻找
redirect_to root_url, :flash=>params.merge({:error=>'no-results'}).with_indifferent_access
答案 1 :(得分:0)
这是闪存的非标准用途......用于存储要向用户显示的消息。 它似乎有点迂回做你真正需要的方式 - 我假设只是一个快速的地方来存储params而你重定向是吗?
您是否考虑过直接使用会话?
例如:
session[:saved_params] = params.merge :error=>'no-results'
然后在新动作中:
real_params = session[:saved_params]
答案 2 :(得分:0)
检查路线中的root :to
是否重定向到root :to => redirect('[PAGE]')
等其他网页。
这发生在我身上,我不得不使用资源路径重定向