在Rails 5.2中,“ before_action:only”和“ before_action:except”之间有什么区别?

时间:2018-12-29 00:19:48

标签: ruby-on-rails-5.2

我正在按照我的站点http://tutorials.jumpstartlab.com/projects/blogger.html#i4:-a-few-gems上的说明设置我的第一个Rails应用程序。在articles_controller中,需要进行身份验证才能进行新建,创建,编辑,更新和销毁。我们将弄清楚如何使用:only:except编写before_action。

尽管我尝试使用两者;使用:except时出现错误,但:only则没有错误。但是我还是不明白区别。

1 个答案:

答案 0 :(得分:1)

当条件为false时,Except运行before操作。仅当条件为true时才运行before过滤器。

class Foo
  before_action :log_not_signed_in, except: :signed_in?
  before_action :log_signed_in, only: :signed_in?
end

如果未登录,则将对每个操作运行log_not_signed_in方法;如果未登录,则将运行log_signed_in方法。

希望这会有所帮助。