红宝石的类声明

时间:2010-07-11 16:01:38

标签: ruby-on-rails ruby

我对ruby和rails很新。

在RoR3中,控制器继承自ActionController::Base

request.env["SERVER_ADDR"]

所以request是Base类中的一个方法(在ActionController模块中)?

那么env["SERVER_ADDR"]是什么?

如果有人可以制作一些代码示例,那将会很棒......这对理解非常有帮助!

谢谢!

2 个答案:

答案 0 :(得分:1)

request.env["SERVER_ADDR"]也可以写为request().env()["SERVER_ADDR"]。因此,env是一个在request()返回的对象上调用而不带参数的方法,然后在参数[]返回的对象上调用"SERVER_ADDR"

答案 1 :(得分:1)

request.env["SERVER_ADDR"]
  1. request

    一个。取消引用局部变量request

    湾向隐式接收器:request

  2. 发送没有参数的消息self
  3. env正在发送消息:env,其中没有参数通过解引用request或为响应将消息:request发送到{{1而返回的对象而获得的对象在第2步中,
  4. self正在向返回的对象发送带有参数["SERVER_ADDR"]的消息:[],以响应在步骤2中发送消息"SERVER_ADDR"
  5. :env是字符串文字。
  6. 您可以更明确地将其写为:

    "SERVER_ADDR"

    或者甚至更明确这样:

    self.request.env.[]("SERVER_ADDR")
    

    甚至全力以赴:

    self.request().env().[]("SERVER_ADDR")