1

Railsアプリのほとんどすべてのコントローラーアクションには、この最初の行があります

@result = super

そのため、この宣言を before_filter に含めることにしましたが、どういうわけかこれは機能しません。何もレンダリングされないか、

Filter chain halted as :result rendered or redirected

基本的に、コントローラーのすべてのアクションに対してスーパーを呼び出すにはどうすればよいですか?

乾杯。

アップデート:

このコントローラーはマウント可能なエンジンに存在し、その役割はデフォルトの API の結果を操作して再度レンダリングすることです。

これが基本構造です

class Api::Custom::PlayersController < Api::V1::PlayersController
 before_filter :result
 def result
   @result = super
 end

 def func1
  @result.first
 end
 def func2
  ...

更新 2:

私は今、正確な問題を知っていると思います。これが私のコントローラーの継承構造です

-ApiBaseContoller
 -ApiPlayersController
  -Api::Custom::PlayersController 

最後のコントローラーで before_filter メソッドを呼び出しても、祖父母クラス「ApiBaseContoller」でトリガーされ、そのコントローラーではスーパーが何であるかがわかりません。

ApiPlayersController と Api::Custom::PlayersController の間でトリガーできる before_filter に相当するものがあるのだろうか。

-ApiBaseContoller
 -ApiPlayersController
   before_filter :do_something 
  -Api::Custom::PlayersController
4

1 に答える 1