353

Rails > 4.0.0 ジェネレーターでは、before_actionnotを使用して CRUD 操作を作成しbefore_filterます。同じことをするようです。では、これら2つの違いは何ですか?

4

6 に答える 6

538

でわかるようActionController::Basebefore_actionは の新しい構文ですbefore_filter

ただし、このbefore_filter構文はRails 5.0で廃止され、 Rails 5.1で削除される予定です。

于 2013-05-13T10:27:04.140 に答える
72

RailsアプリにはCRUDがあり、基本的にindexnewcreateshowupdateeditdestroyという7つのアクションがあります。

Rails 4 では、構文を before filterからbefore actionに変更することが開発者にとって使いやすくなっています。

before_action宣言するアクションの前にメソッドを呼び出します。

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

set_eventは、表示、更新、編集、および破棄の前に常に呼び出されるメソッドです。

于 2014-05-06T12:59:09.410 に答える
32

単なる名称変更です。before_actionアクションの前に実行されるため、より具体的です。

于 2013-05-13T10:33:04.087 に答える