簡単な質問があります:
コントローラーによって何度も呼び出されるヘルパー メソッドをどこに置くのですか?
私の願いは、コントローラー ( user_controller ) を明確にしておくことです。何度も呼び出されるヘルパー メソッド (check_permits)
があります。このメソッドを user_helper 内に配置することは可能ですか?
はいの場合 ==> user_controller 内でそれを呼び出す方法は? check_permits を思い出すだけでは認識されません。
==> がない場合、ヘルパー メソッドをどこに配置しますか?
2 に答える
紛らわしい用語を使用しています。Rails では、コントローラーにはヘルパーがありません。ヘルパーは、ビュー用として定義されています。「ヘルパー」メソッドを使用してコントローラーからヘルパー メソッドを呼び出すことは可能ですが ( http://api.rubyonrails.org/classes/ActionController/Helpers/ClassMethods.htmlを参照)、それがあなたのやり方だとは思いませんを探しています (一般的に、それは良い考えではありません)。
おそらく必要なのは、(1) メソッドを直接 users_controller.rb に保護されたメソッドとして配置することです。
class UsersController < ApplicationController
...
protected
def check_permits
...
end
end
または、(2) 複数のコントローラーから呼び出す場合は、application_controller.rb に配置します。
または(3)モジュールとしてライブラリファイルに入れ、必要なコントローラーに含めます。たとえば、lib/check_permits.rb を作成できます。
module CheckPermits
protected
def check_permits
...
end
end
そして、users_controller.rb で:
class UsersController < ApplicationController
include CheckPermits
...
end
グローバルヘルパーメソッドはapplication_helper.rbファイルに入れることができますが、それが1つのコントローラーによってのみ使用される場合は、各コントローラーが独自のヘルパーファイルを持つことができます。app / helper(またはapp / controller / helper)を調べます。