2017-09-05 6 views
0

私はDeviseと一緒にdevise_invitable gemを使用していますが、招待されたすべてのユーザーのリストを表示する方法を理解できません。 すべての招待されたユーザーのステータスが承諾/保留中であることをにしたいとします。Devise Invitable display invited users

デビーズのコントローラーから継承したカスタムの招待コントローラー(公式のドキュメントのとおり)を作っていますが、これは機能を変更せずスーパーの下にスーパーステートメントを追加しています。私はこの問題に精通し、非常に少数しか見つけられませんでしたが、まったく異なる無関係なアプローチを使用しています。すべての入力が高く評価されています〜

たとえば、招待状/新しいビューから@usersにアクセスしようとすると、undefined method 'each'がスローされます。

+0

にアクセスすることができます** invitation_token **のカラム値でユーザをフェッチするだけです。もしそれが 'nil'でなければユーザは招待され、** invitation_accepted_at **が' nil'であれば同様にステータスが保留中です。 – Sajan

+0

招待状のコントローラーでユーザーにアクセスするにはどうしたらいいですか? – Dotol

+0

これを展開するには、招待状のコントローラに '@users = User.all'と書いて、'%@ users.each do | user | %><%= @ users.email%><% end %> '私のコントローラに変数を割り当てていないかのように、' '未定義のメソッド 'each' for NilClass'をスローします〜 – Dotol

答えて

1

あなたはinvitations_controllerを持っている場合は、単純にこれを追加することができます。

def index 
    @users = User.all 
end 

あなただけApplicationControllerから、工夫を継承する必要はありません。あなたは今、あなたは、2つの別々の配列に結果を分けたい場合は、@users変数にアクセスすることができます:

def index 
    @pending_users = User.where(invitation_accepted_at: nil) 
    @accepted_users = User.where.not(invitation_accepted_at: nil) 
end 

そして、あなたのビューあなたは私はあなたができると思う@pending_usersなど@accepted_users

関連する問題