2016-05-12 6 views
0

私はdeviseを使用しており、どのタイプのユーザーがサインインされているかを確認するためのヘルパーメソッドを設定しています。私はプレーヤーとコーチのユーザータイプがあり、current_playerとcurrent_coachは、 。ここで誰かがサインインしているかチェックしてください

は私application_controllerです:

helper_method :current_account, :account_signed_in? 

def current_account 
    if @current_player 
    @current_account = current_player 
    elsif @current_coach 
    @current_account = current_coach 
    end 
end 

def account_signed_in? 
    current_account != nil 
end 

選手とコーチのモデルは、ユーザモデルのサブモデルです。

class Player < User 
end 
class Coach < User 
end 

これは動作します(ただし、current_playerがある場合のみ):

wrong number of arguments (given 10, expected 2) 

答えて

0

current_account滞在ゼロ:私はcurrent_playerとcurrent_coachから@を削除した場合

def current_account 
@current_account = current_player 
end 

が、私はエラーを取得しますあなたのif条件もあなたのelsif条件も真ではないからです。それは場合は、「の引数の数が間違って(10を与えられ、2を期待)」(@なし)current_playerがnilが、私はエラーが出た場合のステートメントではありません

+0

@current_player@current_coachがnil(または偽)であることを意味します私は@ – user2759575

+0

より多くのコードを削除します:current_playerとcurrent_coachはどこから来ますか? – Fred

+0

彼らは開発者から来ました。私はstiを使用しています。プレーヤーとコーチはユーザーモデルのサブモデルです。 – user2759575

関連する問題