我想了解为什么在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?
答案 0 :(得分:0)
Settings['ldap'] ||= Settingslogic.new({})
相当于:
Settings.[]('ldap') || Settings.[]=('ldap', Settingslogic.new({}))
所以这些只是方法[]
和[]=
在Settings
类(也是一个对象)上调用,具有适当的参数。