Rails 4: before_filter vs. before_action

后端 未结 5 820
没有蜡笔的小新
没有蜡笔的小新 2020-11-27 09:39

In rails >4.0.0 generators creates CRUD operations with before_action not before_filter. It seems to do the same thing. So what\'s the difference b

相关标签:
5条回答
  • 2020-11-27 10:02

    It is just syntax difference, in rails app there is CRUD, and seven actions basically by name index, new, create, show, update, edit, destroy.

    Rails 4 make it developer friendly to change syntax before filter to before action.

    before_action call method before the actions which we declare, like

    before_action :set_event, only: [:show, :update, :destroy, :edit]
    

    set_event is a method which will call always before show, update, edit and destroy.

    0 讨论(0)
  • 2020-11-27 10:12

    As we can see in ActionController::Base, before_action is just a new syntax for before_filter.

    However all before_filters syntax are deprecated in Rails 5.0 and will be removed in Rails 5.1

    0 讨论(0)
  • 2020-11-27 10:15

    To figure out what is the difference between before_action and before_filter, we should understand the difference between action and filter.

    An action is a method of a controller to which you can route to. For example, your user creation page might be routed to UsersController#new - new is the action in this route.

    Filters run in respect to controller actions - before, after or around them. These methods can halt the action processing by redirecting or set up common data to every action in the controller.

    Rails 4 –> _action

    Rails 3 –> _filter

    0 讨论(0)
  • 2020-11-27 10:28

    before_filter/before_action: means anything to be executed before any action executes.

    Both are same. they are just alias for each other as their behavior is same.

    0 讨论(0)
  • 2020-11-27 10:29

    It is just a name change. before_action is more specific, because it gets executed before an action.

    0 讨论(0)
提交回复
热议问题