簡體   English   中英

Rails 4 / Devise中的多表繼承設置current_user

[英]Multiple Table Inheritance in Rails 4/Devise setting the current_user

因此,我決定為我的應用程序的不同用戶使用MTI。 用戶對於我不應該使用STI的信息有足夠不同的信息,我希望它在以后的工作中更加強大。 我有一個使用dev內置在rails 4中的應用,該應用對用戶具有多態關聯,就像這樣

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開發人員)

對於我的項目,我沒有從Devise的current_user實例中更改current_user。 相反,我在需要每個用戶時為它們創建了新對象,並使用current_user的id字段作為特定用戶的外鍵。 更改current_user可能不是最好的主意,因為那樣我就失去了對User表和該表中信息的引用。 為每個用戶創建一個對象都很好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM