0

アプリケーションに単一テーブル継承構造があり、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])

これについて助けてくれてありがとう

4

1 に答える 1

0

私はそれがすべきだと思います

current_user = User.first(:email => email, :type => ['Admin', 'Mod'])
于 2010-06-02T13:33:33.260 に答える