我在闪存通知中有一个链接,可以在重定向后正确显示。但是,当我点击链接时,这是一个简单渲染视图的不同控制器操作,包含该链接的通知在该页面中仍然存在。这通常是如何工作的,因为通知只有在重定向时才会消失,所以我想问题是如何使链接表现为重定向?我不完全确定。
一些代码来说明:
redirect_to root_url, notice: "I am a notice with a #{link}"
link
只是一个行动的路径,但不是渲染布局,所以它有效:
def action
end
现在,上面的代码很好,但是当我点击通知中的那个链接时,相同的通知将在该链接的页面中保留,这不是此处所需的行为。知道怎么处理这个吗?换句话说,我们正在寻找一种方法来使通知中的链接不随附通知。
我尝试了flash.now技巧。它不起作用,因为下一个方法调用是重定向,这违背了flash.now
的整个目的答案 0 :(得分:0)
试试这个:
flash.now[:notice] = "I am a notice with a #{link_to_another_controller_action}"
redirect_to root_url
答案 1 :(得分:0)
相应地更改代码
有两种显示闪光讯息功能的方法
即时加载同一页面,并可在flash['foo']:
flash.now['foo'] = "Hello world"
或重定向到另一个页面,可从flash['notice']:
redirect_to root_url, notice: "Hello world"
ROR gudies网站是一个很好的参考:
http://guides.rubyonrails.org/action_controller_overview.html#the-flash
答案 2 :(得分:0)
然后尝试discard方法。在你的情况下,它应该在目标控制器动作中采用这样的形式:
flash.discard
flash.discard(:notice)