339 在> 4.0.0的rails中,生成器使用before_actionnot 创建CRUD操作before_filter。似乎做同样的事情。那么这两者有什么区别? ruby-on-rails ruby ruby-on-rails-4 crud — 自由类 source
520 正如我们所看到的ActionController::Base,before_action只是一个新的语法的before_filter。 但是,Rails 5.0 中不推荐使用所有before_filters语法,Rails 5.1中将删除所有语法。 — 自由类 source 42 一方面,弃用是有道理的,但另一方面,在rails和ruby中也有一种很好的做法,即对一种方法使用多个别名,以便您可以在不同的上下文中使用它而不会失去意义。 — Freemanoid 4 在4.2中,他们并不反对使用它,而是因为不鼓励将其从文档中删除。edgeguides.rubyonrails.org/…– onetwopunch 2014 — 18 17 如果不建议这样做,那为什么不弃用它呢?愚蠢。 — Grant Birchmeier 2015年 4 @JohnWhitley-弃用不会破坏API。这就是弃用的全部内容。 — Grant Birchmeier 9 @JohnWhitley-垃圾邮件是有原因的。任何纪律严明的项目都应通过不使用不推荐使用的功能来解决不推荐使用的警告。 — 格兰特·伯奇迈尔
67 只是语法上的区别,在Rails应用程序中有CRUD,并且基本上按名称索引,新建,创建,显示,更新,编辑,销毁七个动作。 Rails 4使开发人员更容易在过滤器之前将语法更改为动作之前。 在我们声明的动作之前的before_action调用方法,例如 before_action :set_event, only: [:show, :update, :destroy, :edit] set_event是一种始终在显示,更新,编辑和销毁之前调用的方法。 — 阿怀斯 source
1 before_filter / before_action:表示在执行任何操作之前要执行的任何操作。 两者都一样。它们只是彼此的别名,因为它们的行为是相同的。 — Pankaj Dhote source
-3 为了弄清楚before_action和before_filter之间的区别,我们应该了解action和filter之间的区别。 动作是可以路由到的控制器方法。例如,您的用户创建页面可能被路由到UsersController#new-new是此路由中的操作。 过滤器是针对控制器动作运行的-之前,之后或周围。这些方法可以通过将公用数据重定向或设置到控制器中的每个动作来停止动作处理。 Rails 4 –> _action Rails 3 –> _filter — 优瑟夫 source