我正在構建一個使用「作爲」格式與父應用程序的用戶模型建立關係的Rails引擎。如何從Rails 3.1引擎調用父應用程序的輔助方法
module Cornerstone
module ActsAsCornerstoneUser
extend ActiveSupport::Concern
module ClassMethods
def acts_as_cornerstone_user(options = {})
#= Associations
has_many :cornerstone_discussions
#= Options
Cornerstone::Config.auth_with << options[:auth_with] if options[:auth_with]
Cornerstone::Config.auth_with.flatten!
end
end
module InstanceMethods
end
end
ActiveRecord::Base.send :include, ActsAsCornerstoneUser
end
我想爲開發人員能夠使用:auth_with
選項來指定一個輔助方法名。這個想法是,開發者將在父應用程序中指定一個幫助器方法,該方法將返回該會話的登錄用戶。
我的問題是一旦開發者指定了auth_with
選項,我該如何調用該父應用程序的方法?
有沒有更好的方法來獲取父應用程序的登錄用戶?我希望它儘可能地靈活,以便它不依賴於簡單地調用current_user
。
你需要一個或多個基礎用戶嗎? (即一個授權方法或每個類的一個) –
另外,身份驗證應該是控制器的工作。你需要認證的用戶在哪裏? –
在引擎自己的控制器中需要經過身份驗證的用戶,但身份驗證發生在父應用程序中。 – astjohn