アプリケーションに単一テーブル継承構造があり、AdminsとModsがUserクラスを拡張します。テーブルは識別子の値を使用するため、各レコードのタイプは「admin」または「mod」のいずれかです。
(ログイン時に)ユーザーを見つけることになると、私は次のように書きたいと思います:
current_user = User.find(params[:email => email])
ただし、これにより、次のようなSQLが作成されます。
SELECT ...... WHERE ("type" IN ('User') AND .....
これは、レコードが見つからないことを意味します。ただし、入力すると
current_user = Admin.find(params[:email => email])
ユーザーを取得します(管理者の場合)。
'type' IN('User')がまだ作成されているので、次のことも役に立ちませんでした。
current_user = User.first(:email => email, :type => [Admin, Mod])
これについて助けてくれてありがとう