1

按照关于如何在 rails 中定义自定义配置变量的答案,我正在尝试为不同环境设置配置设置config/environments/{env}.rb

例如在development.rb我设置

config.elvis = 'alive'

然后在我的haml模板中我可以使用这个变量,例如

Elvis is #{Rails.configuration.elvis}.

但是,当我想将其包装在一个条件下时:

- if Rails.configuration.elvis
  <p>Elvis is #{Rails.configuration.elvis}</p>

它也有效,但如果未设置配置,则会引发undefined method错误。

如果我尝试改为:

- if defined? Rails.configuration.elvis
  <p>Elvis is #{Rails.configuration.elvis}</p>

即使定义了配置,它似乎总是评估为假。

对于 rails/ruby 来说还是很新的,如果这是一个非常愚蠢的问题,请道歉

4

1 回答 1

3

你可以使用respond_to?

- if Rails.configuration.respond_to?(:elvis)
  <p>Elvis is #{Rails.configuration.elvis}</p>
于 2012-04-13T10:35:29.600 回答