2016-05-09 2 views
0

私のアプリケーションには2つのアプリケーションコントローラがあります。私の内部情報をすべて保持し、ユーザーがログインしているかどうかを確認するもの 他のアプリケーションコントローラは、外部と呼ばれる名前空間の下にあります。 このコントローラーでは、ユーザーはトークンを使用して特定のURLに移動できます。トークンは、トークンが会社に属しているかどうかを確認するために検証される会社を表します。この方法では、ユーザーはログに記録する必要はなく、uniqトークンを知る必要があります。Rails用Middle Manコントローラ

私が直面している問題は、メインアプリケーションコントローラに属する再利用したいオートコンプリートメソッドがありますが、このコントローラはユーザーがログインしているかどうかをチェックして、検索しようとすると401が表示される外側に。

私はレールに二重の継承はないと知っていますが、コントローラーを2つの異なるコントローラーに所属させる方法がありますか?そうすれば、私はこのコントローラーにすべての自動完了メソッドを張ることができ、両方のアプリケーションコントローラーはそれにアクセスできます。

コントローラーでオートコンプリートメソッドを保持したい主な理由は、JQueryオートコンプリートでこの情報を使用できるように、アクションをJSONに戻すことができるようにすることです。

おかげさまで、ありがとうございました。私がこの間違いを考えている場合は、これを達成するために必要なその他のアイデアを教えてください。

答えて

1

これは、自動完了メソッド(およびコントローラ間で共有する他の方法)を使用してモジュールを作成し、適切なコントローラにモジュールを含めることで実現できます。コントローラで

module ModuleName 
    def some_method 
    ... 
    end 
    ... 
end 

class ControllerName < ApplicationController 
    include ModuleName 
    ... 
end 

some_methodコントローラ名とモジュールをあなたの迅速な対応のための

+0

感謝を含む任意の他のコントローラで利用できるようになります。このようなファイルをどこに追加することをお勧めしますか? libフォルダ?イニシャライザ? – Doctor06

+0

モジュールを/ libに入れます。ここに、かなり良いチュートリアルへのリンクがあります:http://www.benfranklinlabs.com/where-to-put-rails-modules/ –

関連する問題