单击闪存消息中的链接时Rails会保持闪烁(不应该)

时间:2014-03-02 15:51:24

标签: ruby-on-rails ruby

注意:这与现在与通知问题不同。请继续阅读。

我在闪存通知中有一个链接,可以在重定向后正确显示。但是,当我点击链接时,这是一个简单渲染视图的不同控制器操作,包含该链接的通知在该页面中仍然存在。这通常是如何工作的,因为通知只有在重定向时才会消失,所以我想问题是如何使链接表现为重定向?我不完全确定。

一些代码来说明:

redirect_to root_url, notice: "I am a notice with a #{link}"

link只是一个行动的路径,但不是渲染布局,所以它有效:

def action end

现在,上面的代码很好,但是当我点击通知中的那个链接时,相同的通知将在该链接的页面中保留,这不是此处所需的行为。知道怎么处理这个吗?换句话说,我们正在寻找一种方法来使通知中的链接不随附通知。

编辑(2)

我尝试了flash.now技巧。它不起作用,因为下一个方法调用是重定向,这违背了flash.now

的整个目的

3 个答案:

答案 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)