Так что я знаю, что этот вопрос задавал тонну раз, но мой вопрос идет немного дальше.Rails полиморфная модель пользователя с Devise
При моделировании моего приложения у меня есть два типа пользователей, которые имеют полиморфную связь с моделью пользователя. Такие, как:
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
Причина я сделал это, а не ИППП, потому, что User_Type_1
имеет что-то вроде 4 полей и User_Type_2
имеет что-то вроде 20 полей, и я не хочу, чтобы таблица пользователей, чтобы иметь так много полей (да 24-ишевые поля не много, но я бы предпочел, чтобы в большинстве случаев не было ~ 20 полей)
Я понимаю, как это работает, мой вопрос заключается в том, что я хочу, чтобы форма регистрации использовалась только для зарегистрируйте пользователей типа User_Type_1
, но форму для входа в систему. (У меня будет сторона администратора приложения, которые будут создавать пользователь User_Type_2
)
Я знаю, что я могу использовать after_sign_in_path_for(resource)
переопределение AppicationController
как-то перенаправить к правой части сайта на знак в что-то вроде:.
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?
Кроме того, если я собираюсь сделать это неправильно, что это правильный путь?