即時通訊紅寶石和鐵軌。紅寶石類聲明
在RoR3控制器從ActionController::Base
request.env["SERVER_ADDR"]
繼承所以請求是在基類的方法(即在ActionController的模塊內)?
是什麼env
然後和["SERVER_ADDR"]
?
將是巨大的,如果有人能做出一點點的代碼示例...這將是非常有益的理解!
謝謝!
即時通訊紅寶石和鐵軌。紅寶石類聲明
在RoR3控制器從ActionController::Base
request.env["SERVER_ADDR"]
繼承所以請求是在基類的方法(即在ActionController的模塊內)?
是什麼env
然後和["SERVER_ADDR"]
?
將是巨大的,如果有人能做出一點點的代碼示例...這將是非常有益的理解!
謝謝!
request.env["SERVER_ADDR"]
request
是要麼
一個。提領本地變量request
或
b。不帶參數發送消息:request
隱式接收機self
,
env
不帶參數的對象而獲得通過解引用request
在步驟2中發送消息:env
或物體返回響應於發送該消息:request
到self
,["SERVER_ADDR"]
與參數"SERVER_ADDR"
響應返回到在步驟2和"SERVER_ADDR"
發送消息:env
對象發送消息:[]
是文字的字符串。你可以更明確地寫出這樣的:
self.request.env.[]("SERVER_ADDR")
或更明確的是這樣的:
self.request().env().[]("SERVER_ADDR")
甚至全員出動:
self.send(:request).send(:env).send(:[], "SERVER_ADDR")
request.env["SERVER_ADDR"]
也可以寫爲request().env()["SERVER_ADDR"]
。所以env
是一個名叫未經request()
返回的對象上的參數,然後調用[]
通過與參數"SERVER_ADDR"
返回的對象上的方法。
但爲什麼不()... request()。env()。[「SERVER_ADDR」] – 2010-07-11 16:17:09
因爲'foo [ba r]'比'foo。[bar]'更好讀寫,所以ruby的創建者決定調用'[]'的語法應該是前者。 – sepp2k 2010-07-11 16:21:49
很好的解釋! +2! :) 1無敵點 – 2010-07-11 17:05:45