2016-11-28 74 views
0

我試過同時搜索站點和Ruby文檔,但是,我無法找到明確的答案,以確定上述操作。幫助理解以下方法:request.query_string

根據我的理解,'request'和'query_string'是兩個獨立的方法,但是我真的不確定他們做了什麼 - 特別是後者。

任何幫助將超級讚賞!

謝謝。

+0

這是在Rails應用程序? – jphager2

回答

1

在Rails中,控制器和視圖中可用的#request方法返回一個ActionDispatch :: Request實例。 Request對象允許從HTTP請求中訪問數據。

Rack :: Request :: Helpers中定義的#query_string方法從請求url中返回查詢字符串。這是url後面的「?」部分它以格式key = value & other_key = other_value指定url編碼數據。

注:

ActionDispatch ::請求是其功能類似於一個機架::請求,包括機架::支持:: Env和機架::支持::助手在一個Rails類當前版本的Rails v 5.0。在之前的版本中,ActionDispatch :: Request直接從Rack :: Request繼承。

瞭解更多:

+0

謝謝,夥計!我必須說,雖然我注意到在Sinatra中使用'require' - 我想象同樣的規則適用於?再次感謝。 :) – IainK

+0

它看起來像Sinatra的Request對象直接從Rack :: Request繼承(https://github.com/sinatra/sinatra/blob/master/lib/sinatra/base.rb#L23)。在Ruby中,#require從加載路徑加載一個庫(只有一次),包括(例如在ActionDispatch :: Request中使用Rack :: Request :: Helpers所做的)將模塊附加到祖先鏈,使實例方法可用。 – jphager2