2010-12-15 83 views
11

我用params在我的控制器是這樣的:Rails:哪裏定義了「params」?

class ProductsController < ApplicationController 
    def create 
    @product = Product.new(params[:aircon]) 
    ... 
    end 
end 

paramsApplicationController屬性?我想不會,因爲它沒有@前綴。那麼,究竟是什麼params是?我可以在ProductsController的任何自定義方法中使用它嗎?

回答

10

它在ActionController :: Metal中定義。 ApplicationController繼承自ActionController :: Base,它從ActionController :: Metal中獲取。如果你看看http://api.rubyonrails.org/的Rails API,你會發現params只是一個函數,返回request對象的參數。

7

參數實際上被解析中間件稱爲ActionDispatch::ParamsParserActionController::Metal中的params函數是這個的一個包裝。