2010-12-15 4 views
11

używam params w moim kontroler następująco:Szyny: Gdzie zdefiniowane są "parametry"?

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

Czy params atrybutem ApplicationController? Chyba nie, ponieważ nie ma prefiksu @. Czym właściwie jest params? Czy mogę używać go w dowolnej niestandardowej metodzie w ProductsController?

Odpowiedz

10

Jest zdefiniowany w ActionController :: Metal. ApplicationController dziedziczy po ActionController :: Base, który jest inheirts od ActionController :: Metal. Jeśli spojrzysz na Rails API pod numerem http://api.rubyonrails.org/, znajdziesz params to tylko funkcja, która zwraca parametry obiektu request.

7

Parametry są aktualnie analizowane w oprogramowaniu pośrednim o nazwie ActionDispatch::ParamsParser. Funkcja params w ActionController::Metal jest przeznaczona do tego celu.