私はdevisからcurrent_userを取得しようとするときに本当の問題を抱えています。ここからアカウントIDを決めてから、この宝石のset_current_tenant_toメソッドに変数として渡します:https://github.com/ErwinM/acts_as_tenant私は自分のアプリケーションのコントローラでapplication_controllerのクラスとメソッドの変数を設定する
:
class ApplicationController < ActionController::Base
protect_from_forgery # See ActionController::RequestForgeryProtection for details
helper :all # include all helpers, all the time
def get_current_account_id
current_account_user = current_user
current_account_id = current_account_user.account_id
current_account_id
end
current_account = Account.find(get_current_account_id)
set_current_tenant_to(current_account)
私はbefore_filter呼び出しでそれを置くとき、私はそれが正しい数字を出力ログに見ることができるのでget_current_account_idが正しいACCOUNT_IDを推定することを知っています。しかし、私はこれを実行すると、私は次のエラーを取得:
Routing Error
undefined local variable or method `get_current_account_id' for ApplicationController:Class
を私はこの仕事を得ることができる方法上の任意のアドバイスやポインタをいただければ幸いです。
.....それはとてもきれいで、細かい作業を願っていますが、それは動作しません。 'ルーティング: は' DEF をself.get_current_account_id私は今、次の応答を取得 エンド current_account = Account.find(get_current_account_id) set_current_tenant_to(current_account) ' をcurrent_user.account_id:私のコントローラでこれにより エラー 未定義のローカル変数またはメソッド 'current_user' for ApplicationController:Class' – Betjamin
混乱はクラス対インスタンスメソッドの衝突です...一見すると、テナントは見た目が面白く見えます。しかし、それはtをロックするでしょう彼はすべての要求を実行するのではなく、最初の実行に説明します...私はその宝石の著者と明確にすることをお勧めします... – DGM