Во-первых, я искал, что я искал Google и Yahoo, и я нашел несколько ответов на темы, как мои, но они все не охватывают то, что я нужно знать.
У меня есть несколько пользовательских моделей в моем приложении, пока это клиенты, дизайнеры, розничные продавцы, и похоже, что есть еще больше, чтобы прийти. Все они имеют разные данные, хранящиеся в своих таблицах, и несколько областей на сайте, им разрешено или нет. Поэтому я полагал, чтобы пойти на разработку + канкан, и попробовать повезло с полиморфными ассоциациями, поэтому я получил следующие моды, установленные:
class User < AR
belongs_to :loginable, :polymorphic => true
end
class Customer < AR
has_one :user, :as => :loginable
end
class Designer < AR
has_one :user, :as => :loginable
end
class Retailer < AR
has_one :user, :as => :loginable
end
для регистрации я получил индивидуальные представления для каждого другого типа пользователя, и мои маршруты настроены, как Это:
devise_for :customers, :class_name => 'User'
devise_for :designers, :class_name => 'User'
devise_for :retailers, :class_name => 'User'
На данный момент контроллер регистраций остается в стандартной комплектации (который является «разработкой / регистрациями»), но я полагал, поскольку я получил разные данные для хранения в разных моделях, мне придется настраивать это поведение?
Но с этой установкой у меня есть помощники, как Customer_Signed_in?
и и
Designer_signed_in?
, но то, что мне действительно нужно, это общий помощник, как user_signed_in?
Области на сайте доступны для всех пользователей, независимо от того, какой тип пользователя.
Мне также понравится помощник маршрутов, как new_user_session_path
вместо нескольких new_ * type * _session_path
и так далее. На самом деле все, что мне нужно быть другим - это процесс регистрации ...
Итак, мне было интересно, если это путь к этой проблеме ??? Или есть ли лучший / проще / меньше необходимо настроить решение для этого ???
заранее спасибо,
Robert