zer*_*uno 13 ruby-on-rails callback actioncontroller
我知道使用以下代码:
before_action :signed_in?, only: [:new]
该行动new将是否执行signed_in?返回true,而是如果我想的new时候要执行的动作signed_in?返回false,我必须做什么?例如,我是否必须创建一个名为的新方法not_signed_in??
这是我的signed_in?方法
def signed_in?
!@current_user.nil?
end
Run Code Online (Sandbox Code Playgroud)
Mar*_*pka 21
before_action不会像您想象的那样工作 - 如果回调返回,它不会阻止执行操作false.我会以一点点不同的方式解决你的问题,例如:
before_action :redirect_to_root, :if => :signed_in?, :only => :new
# ...
private
def redirect_to_root
redirect_to root_path
end
Run Code Online (Sandbox Code Playgroud)
小智 7
before_action :new, unless: -> { signed_in? }
Run Code Online (Sandbox Code Playgroud)
尽管如此,我认为更好地重新定位被称为的动作.
def your_action_called
redirect_to :new unless signed_in?
[...code ...]
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18919 次 |
| 最近记录: |