ヘルパーファイルにコントローラーメソッドを明示的に含めて、そのヘルパーを別のコントローラーに含めてそのメソッドを使用できるようにする方法

methods ruby ruby-on-rails ruby-on-rails-3
ヘルパーファイルにコントローラーメソッドを明示的に含めて、そのヘルパーを別のコントローラーに含めてそのメソッドを使用できるようにする方法

Ruby on Rails 3を使用していますが、関連するヘルパーファイル(accounts_helper.rb)にコントローラー(accounts_controller.rb)メソッドを明示的に含めて、別のコントローラーにそのヘルパーを含めてそのメソッドを使用できるようにします。 accounts_controller.rbに記載されているメソッドコードをヘルパーで移動できるので、それが必要ですが、他のコントローラーでそのメソッドを使用する必要があります。

この質問はhttps://stackoverflow.com/questions/5390125/trouble-using-helper-method-and-rendering-templates [その他の質問]にも関連しているため、後者をこのように解決することを考えました。

accounts_controller.rbの(1)状態

def method_name
  ...
end

accounts_helper.rbの(2) `method_name`を含めることができます…​ これを行う方法?

(3)posts_account.rbにaccounts_helper.rbを含めることができます…​ これを行う方法?

良いアプローチですか? その場合、手順2と3をどのようにコーディングできますか?

  0  1


ベストアンサー

コントローラーとビュー/ヘルパーでメソッドを使用したい場合、 `helper_method`として宣言できます

あなたの application_controller

helper_method :some_method

def some_method
  // some common stuff
end

これにより、コントローラーとビュー間でメソッドが利用可能になります

4


1つのアイデア-ヘルパーメソッドをapplication_controller.rbに配置し、コントローラーごとにビューに公開するタイミングを宣言するか、application_controller.rbでグローバルに宣言できます。

0


複数のコントローラーでメソッドを使用する必要がある場合は、 `application_controller.rb`に配置するのが合理的であることをお勧めします。

-1


タイトルとURLをコピーしました