在學習Rails應用程序我見過這樣的語句:在Rails中使用參數[:user_id],params [:user_id],params [「userid」]?
如果他們之間有沒有主要區別parameter[:user_id]
params[:user_id]
params["userid"]
誰能告訴我?或者,都是 只取參數,我可以交替使用它們嗎?
在學習Rails應用程序我見過這樣的語句:在Rails中使用參數[:user_id],params [:user_id],params [「userid」]?
如果他們之間有沒有主要區別parameter[:user_id]
params[:user_id]
params["userid"]
誰能告訴我?或者,都是 只取參數,我可以交替使用它們嗎?
parameter[:user_id]
我不認爲這是什麼官。但是,當前請求對象上有一個parameters
方法。請參閱控制器操作中的request.parameters
。
params[:user_id]
使用params[:user_id]
是與調用request.parameters[:user_id]
。 params[:user_id]
也與params["user_id"]
相同。見HashWithIndifferentAccess。
我不確定這是否就是您的錯字,但params[:user_id]
和params["userid"]
不一樣,即使使用HashWithIndifferentAccess
也是如此。 _
不會消失,所以他們可以擁有不同的價值觀。
不,您需要查看每個使用的上下文。 params
是可用於控制器中方法的常規參數哈希。它包含作爲請求的一部分傳入的參數GET
或POST
params。
因此,考慮到以下網址:
http://www.testsite.org/some_resource?user_id=13
的params[:user_id]
將包含價值13
。
相反,如果URL是:
http://www.testsite.org/some_resource?userid=13
您需要使用params[:userid]
來獲取值。所有這一切都取決於爲不同的控制器創建URL的方式。
還有第三種方法,您可以將URL本身的各個部分映射到路徑中的參數到應用程序中。請參閱您的應用程序中的config/routes.rb
。例如有以下途徑:
match '/user/:user_id' => 'users#show'
您可以傳遞這樣一個URL:
http://www.testsite.org/user/13
而在你UsersController.show方法您可以通過使用params[:user_id]
像正常訪問的用戶ID。
parameter
散列最有可能是輔助方法或其他東西中的params散列的本地副本或引用。
它可能是一個常規的本地散列。 –