2010-12-15 24 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 :: Metalを継承しています。 Rails APIをhttp://api.rubyonrails.org/に見ると、paramsrequestオブジェクトのパラメタを返す関数に過ぎません。

7

パラメータは、ActionDispatch::ParamsParserと呼ばれるミドルウェアで実際に解析されています。 ActionController::Metalにあるparamsの機能は、このためのラッパーです。

関連する問題