在类外声明一些类参数

时间:2013-07-02 15:14:19

标签: ruby-on-rails class methods

我想了解为什么在1_settings.rb rails应用初始化应用中,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?

1 个答案:

答案 0 :(得分:0)

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

相当于:

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

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