Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何检查是否定义了Rails.application.config变量?_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

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

Ruby on rails 如何检查是否定义了Rails.application.config变量?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,即使Rails.application.config.trackable_models返回一个完整的数组,defined?(Rails.application.config.trackable_models)返回零 Rails.application.config.trackable_models # => ["NewsItem", "ContentPage", "Event"] defined?(Rails.application.config.trackable_models): #

即使
Rails.application.config.trackable_models
返回一个完整的数组,
defined?(Rails.application.config.trackable_models)
返回零

Rails.application.config.trackable_models # => ["NewsItem", "ContentPage", "Event"]
defined?(Rails.application.config.trackable_models): # => nil 
以相同的方式设置局部变量也可以:

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

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

如果要检查方法是按字面意义定义的,请使用
respond\u 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?

谢谢@steel<代码>响应?工作正常。如果定义了可跟踪的_模型,则其余部分很有用,否则对
Rails.applications.config.trackable_模型的任何调用
都会导致“未定义的方法‘可跟踪的_模型’”