所以我決定爲我的應用的不同用戶使用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開發人員)