0

これはおそらくばかげた質問です。複数のコントローラーで使用できる機能を用意できますか?

私は2つのコントローラーを持っています

class C1Controller < ActionController::Base
 def add(input_value)
  @output_value = input_value * 2
 end
end

今、この追加機能を別のコントローラーで使用したいと思います

class C2Controller < ActionController::Base
 @new_value = add(2)
end
4

3 に答える 3

5

その関数を で定義するとapp/controllers/application_controller.rb、すべてのコントローラで使用できるようになります。

于 2012-04-18T11:30:25.153 に答える
2

ApplicationControllerこれに使用できます。

ApplicationController他のコントローラーが から直接ではなく、から派生していることを確認してくださいActionController。次に、フィルター、一般的なメソッドなどを 1 つの .xml で構成できますApplicationController

ただし、親コントローラーを定義し、そこからコントローラーを派生させるのが賢明な場合があります。これApplicationControllerは、実際にはランダムなコード共有を意図したものではなく、フィルターや偽造防止などの特定の目的のためのものです。

于 2012-04-18T11:32:01.673 に答える
0

ヘルパーで関数を定義してから、このヘルパーを ApplicationController に含めることもできます。次のように:

include SessionsHelper
于 2015-12-07T20:08:55.110 に答える