如何将 notice/alert 添加到 before_filter

How to add a notice/alert to a before_filter

所以我在使用 devise 时有一个像下面这样的前置过滤器:

before_action :authenticate_user!, only: [:new, :destroy, :edit, :update]

因此,每当我进行新操作时,如果我未登录,我都会重定向到 users_sign_in 路由。但是用户可能会感到困惑,并且想知道为什么他们在预期时被重定向到那里使用新操作。

如何向仅在存在重定向时才显示的前置过滤器添加消息或警报...

类似于:

notice: 'You must sign in before creating a new product!'

尝试使用

flash[:notice] = 'You must sign in before creating a new product!'

http://api.rubyonrails.org/classes/ActionDispatch/Flash.html

记得在布局文件中显示闪光灯。 参见 http://guides.rubyonrails.org/action_controller_overview.html#the-flash

我在测试不同的东西时最终找到了更好的解决方案。我认为它更简单更直观:

before_action :authenticate_user!, only: [:new, :destroy, :edit, :update], notice: 'you must sign in first!'