0

我想了解为什么在1_settings.rbRails 应用程序初始化应用程序中,Settings参数的某些方法在类之外声明Settings。为什么准确的意思?我们可以把它们当作Settings方法吗?(如果是这样,为什么不把它们包括在课堂上)

顺便说一句,关键字在哪里namespace定义(它是指 ruby​​ 关键字还是所有其他地方定义的namespace类)?

class Settings < Settingslogic
  source "#{Rails.root}/config/applab.yml"
  namespace Rails.env

  class << self
    def applab_on_non_standard_port?
      ![443, 80].include?(applab.port.to_i)
    end
...    
  end
end

...
# Default settings
Settings['ldap'] ||= Settingslogic.new({})
Settings.ldap['enabled'] = false if Settings.ldap['enabled'].nil?
4

1 回答 1

0
Settings['ldap'] ||= Settingslogic.new({})

相当于:

Settings.[]('ldap') || Settings.[]=('ldap', Settingslogic.new({}))

所以这些只是简单的方法[],并[]=Settings具有适当参数的类(也是一个对象)上调用。

于 2013-07-02T15:30:54.523 回答