1

簡単な質問があります: コントローラーによって何度も呼び出されるヘルパー メソッドをどこに置くのですか?
私の願いは、コントローラー ( user_controller ) を明確にしておくことです。何度も呼び出されるヘルパー メソッド (check_permits) があります。このメソッドを user_helper 内に配置することは可能ですか?

はいの場合 ==> user_controller 内でそれを呼び出す方法は? check_permits を思い出すだけでは認識されません。
==> がない場合、ヘルパー メソッドをどこに配置しますか?

4

2 に答える 2

4

紛らわしい用語を使用しています。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
于 2011-01-17T18:10:11.680 に答える
0

グローバルヘルパーメソッドはapplication_helper.rbファイルに入れることができますが、それが1つのコントローラーによってのみ使用される場合は、各コントローラーが独自のヘルパーファイルを持つことができます。app / helper(またはapp / controller / helper)を調べます。

于 2011-01-17T18:01:42.793 に答える