2

私はRailsにかなり慣れていないので、私が話している「インスタンス変数」ではない場合は申し訳ありません!

私は認証に Devise を使用しているため、アプリ全体で current_user などを使用できます。私が構築しているアプリには User モデルだけでなく、Keyholder モデル (そのユーザーの一種のモデレーター) と Guest (そのユーザーのいくつかのものへの読み取り専用アクセス権を持つ) もあります。

私が知りたいのは、たとえば access_user をキーホルダーとしてログインして current_user と同じオブジェクトにアクセスできるように設定できますか? もしそうなら、アプリのどこにコードを配置すればよいですか? それはすぐに非常に冗長になり、Rails のように繰り返さなければならなくなります。

私が達成しようとしているのは、現在のユーザーの代わりに「access_user」を使用できるようにすることです。これにより、ログインしているユーザー、キーホルダー、ゲストのいずれであっても、ユーザー オブジェクトが使用されます。

例えば:

def access_user
  if user_signed_in?
    access_user = current_user
  end
  if keyholder_signed_in?
    access_user = current_keyholder.user
  end
  if guest_signed_in?
    access_user = current_guest.user
  end
end 

ありがとう!

4

2 に答える 2