Итак, я решил использовать MTI для разных пользователей моего приложения. Пользователи имеют различную информацию о том, где я не думаю, что я должен использовать STI, и я хотел, чтобы она была более надежной в будущем. У меня есть приложение построено в рельсах 4 с помощью изобрести что имеет полиморфную ассоциацию для пользователей, сделал как этотМногократное наследование таблиц в Rails 4/Настройка настройки current_user
class User < ActiveRecord::Base
belongs_to :rolable, :polymorphic => true
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable, :timeoutable
end
с другими классами выглядит как
class User1 < ActiveRecord::Base
has_one :user, :as => :rolable
end
Это все хорошо и денди, но я я спрашиваю, как установить «current_user» в качестве экземпляра User1? возможно или рекомендуется? Я могу создать новый User1 и обновить атрибут: rolable для пользователя, чтобы включить ссылку на конкретный User1 в консоли, но я не уверен, где его поместить в свой код.
Я хочу, чтобы информация входа была одинаковой для всех пользователей, но я хочу, чтобы пользователь мог изменять информацию о пользователе при входе в систему. Я думал, что я бы изменил пользовательский контроллер, чтобы добавить модель User1 при создании, а затем в контроллере приложения я бы установил current_user как экземпляр User1.
Это рекомендуется или есть лучший способ сделать current_user?
Вторая мысль, которую я имел, устанавливала другую переменную и получала тип, используя столбцы в классе User. (rolable_id и rolable_type)
Какой был бы лучший способ? (Я не самый опытный Rails-разработчик)