2016-06-20 18 views
2

私はRailsには比較的新しいので、Railsの仕組みを把握するための簡単なユーザ認証システムの作成に取り組んでいます。Railsで再利用可能なコントローラメソッドを使用するには?

私は私がそうのような私のコントローラで使用できるいくつかのメソッドを作成したいポイントで、現在よ

:これらのに使用される

is_logged? # => true 

current_user_id # => 6 

主にセッションでやりとりするので、コントローラで自分自身を繰り返すことはありません。

ここではこれらの機能を定義し、コントローラにどのように組み込むのですか?

ご協力いただきありがとうございます。あなたがapp/helpers/my_module.rb内で、ヘルパーファイルでこれらのメソッドを定義することができ

答えて

7

方法1

。そこにモジュールを作成し、その中にすべてのメソッドを配置し、これらのメソッドを使用するためにモジュールをコントロールに組み込むことができます。あなたは常にapplication_controller.rb内に置くことができますセッション関連のものを使用している場合

あなたのクラスの後
module MyMoule 
    def is_logged? 
    ... 
    end 
end 

class MyClassController < ApplicationController 
    include MyModule 

    def my_method 
    #Use it like this 
    logged_in = MyModule.is_logged? 
    end 
end 

方法2

モジュールを含みます。そしてすべてのコントローラがApplicationControllerを継承するので、メソッドが利用可能になります。

class ApplicationController < ActionController::Base 
    def is_logged? 
    ... 
    end 
end 

他のコントローラでは、それらを直接使用できます。

class MyClassController < ApplicationController 
    def my_method 
    logged_in = is_logged? 
    end 
end 
関連する問題