Je construis un moteur de rails qui utilise le format "agit as" pour établir des relations avec le modèle User de l'application parente.Comment appeler la méthode d'aide d'une application parente à partir d'un rail 3.1 engine
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
Je voudrais pour un développeur pour être en mesure de spécifier un nom de méthode d'assistance en utilisant l'option :auth_with
. L'idée est que le développeur spécifiera une méthode d'assistance dans l'application parente qui retournera l'utilisateur connecté pour cette session.
Ma question est une fois que le développeur a spécifié l'option auth_with
, comment puis-je appeler la méthode de cette application parente?
Existe-t-il une meilleure approche pour obtenir l'utilisateur connecté de l'application parent? Je voudrais qu'il soit aussi flexible que possible de sorte qu'il ne dépende pas simplement d'appeler current_user
.
Avez-vous besoin d'un ou plusieurs utilisateurs de la pierre angulaire? (c'est-à-dire une méthode d'authentification ou une par classe) –
De plus, l'authentification devrait être le travail d'un contrôleur. Où aurez-vous besoin de l'utilisateur authentifié? –
L'utilisateur authentifié sera nécessaire dans les contrôleurs du moteur, mais l'authentification a lieu dans l'application parente. – astjohn