この質問は何度も聞いてきましたが、私の質問はもう少し進んでいます。Rails多型ユーザモデルDeviseを使って
私のアプリケーションをモデリングするとき、ユーザーモデルに多相関連を持つ2種類のユーザーがあります。以下のような:
class User < ActiveRecord::Base
belongs_to :profileable, :polymorphic => true
end
class User_Type_1 < ActiveRecord::Base
has_one :user, :as => :profileable
end
class User_Type_2 < ActiveRecord::Base
has_one :user, :as => :profileable
end
私が代わりにSTIの、これをしなかった理由、User_Type_1
は4つのフィールドのようなものを持っており、User_Type_2
は20のフィールドのようなものを持っていると私はユーザテーブルは非常に多くのフィールドを持っていたくなかったからです(はい、24-ishフィールドは大したものではありませんが、私はむしろ〜20フィールドはほとんど空ではありません)
私はこの仕組みを理解しています。私の質問は、タイプUser_Type_1
のユーザーにサインアップしますが、サインインフォームは両方に使用する必要があります。何とかに看板上のサイトの右側の部分にリダイレクトするために、私は私がAppicationController
でafter_sign_in_path_for(resource)
オーバーライドを使用することができます知っている
を(私はUser_Type_2
のユーザーを作成するアプリケーションの管理者側になります)のようなもの:。
def after_sign_in_path_for(resource)
case current_user.profileable_type
when "user_type_1"
return user_type_1_index_path
when "user_type_2"
return user_type_1_index_path
end
end
私の質問は、私がDeviseで作業するフォームを作成し、タイプUser_Type_1
のサインアップのみを許可してsign_upの後でサインインすることです。
また、私が間違った方向に進むとすれば、正しい方法は何ですか?