2010-12-15 15 views
11

Io uso params nel mio controller come questo:Rails: dove sono definiti i "parametri"?

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

È params un attributo di ApplicationController? Immagino di no, perché non ha il prefisso @. Quindi, che cos'è in realtà params? Posso usarlo in qualsiasi metodo personalizzato in ProductsController?

risposta

10

E 'definita in ActionController :: metallo. ApplicationController eredita da ActionController :: Base, che inheirts da ActionController :: metallo. Se guardate l'API Rails a http://api.rubyonrails.org/, troverete params è solo una funzione che restituisce i paramaters dell'oggetto request.

7

I parametri vengono effettivamente analizzati in middleware chiamato ActionDispatch::ParamsParser. La funzione params in ActionController::Metal è un involucro per questo.

Problemi correlati