29 votes

Comment lire les valeurs de configuration de ruby on rails depuis le contrôleur d'application ?

Si j'ai un fichier de configuration comme celui-ci

# config/environments/integration.rb
config.action_controller.session = {
  :domain => ".example.com"
}

Comment puis-je obtenir la valeur à partir du contrôleur de mon application, par ex :

# app/controller/application_controller
class ApplicationController < Mcc::CoreSupport::FrontendController
  def some_method
    value = xxx
  end
end

69voto

Melinda Weathers Points 1328

Dans Ruby on Rails 3 et supérieur, vous pouvez accéder à la configuration par le biais de Rails.application.config


Dans les versions plus récentes, vous pouvez utiliser Rails.configuration à la place. Par exemple : Rails.configuration.time_zone . Voir plus dans le manuel officiel sur la configuration

8voto

zetetic Points 29261

La méthode de la classe ActionController::Base.session_options renvoie un hachage des options de configuration de la session.

Donc dans votre cas, vous voulez ActionController::Base.session_options[:domain]

1voto

klochner Points 5595

Vous ne pouvez pas tirer l'objet config directement, rails le jette après l'initialisation.

Vous devez soit :

  1. stocker une référence à l'objet config dans votre bloc d'initialisation
  2. trouver un autre moyen d'accéder à la variable

zététique a donné une bonne solution en utilisant (2) qui devrait fonctionner pour vous

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X