私は Rails アプリケーションに取り組んでおり、3 つの異なるユーザー タイプがあります。これらのユーザーは大きく異なる可能性があるため、それぞれのモデルを作成しました。これで、1 つのフォームからログインできるようになります。つまり、基本的には「find_by_email("some_email")」のようなことを言いたいのですが、3 つのテーブルすべてを検索します。ただし、Rails は Admin.find_by() のような特定のモデルで 'find_by' を呼び出すことを期待しているようです。助言がありますか?
2 に答える
1
このようなことを試して、電子メールがすべてのテーブルで一意であると仮定します
[Model1, Model2, Model3].each do |model|
break if model.find_by_email("email@email.com").present?
end
于 2012-11-05T13:57:39.820 に答える
0
これが開発の初期段階であることを願っていますが、現在の構造は最善の方法ではない可能性があります。各ユーザー タイプで共有されていない列はいくつありますか? 「ユーザーロール」システムを使用して、それをユーザーテーブルの追加の列にすることができます。
それよりも、 CanCanのようなものを使用して、これらの役割と、アクセスできるもの/場所を管理できます。
于 2012-11-05T13:58:00.367 に答える