如何检查是否定义了Rails.application.config变量?

时间:2016-09-01 21:57:32

标签: ruby-on-rails ruby ruby-on-rails-4

即使Rails.application.config.trackable_models返回完整数组,defined?(Rails.application.config.trackable_models)也会返回nil。

Rails.application.config.trackable_models # => ["NewsItem", "ContentPage", "Event"]
defined?(Rails.application.config.trackable_models): # => nil 

以相同的方式设置局部变量很好:

foo = ["x"]
defined?(foo) # => local-variable

如果未定义配置变量,检查配置变量是否存在的正确方法是什么?"?

1 个答案:

答案 0 :(得分:4)

如果要检查方法是否按字面意义定义,请使用respond_to

Rails.applications.config.respond_to?(:trackable_models)

如果你想检查方法是否返回nil以外的其他内容,你有一些选择:

tm = Rails.applications.config.trackable_models
tm.nil?
tm.presence || 'default value'
tm.present?
tm.blank?