2010-12-15 111 views
11

J'utilise params dans mon contrôleur comme ceci:Rails: Où "params" est défini?

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

est-params un attribut de ApplicationController? Je suppose que non, car il n'a pas le préfixe @. Alors, qu'est-ce que c'est réellement params? Puis-je l'utiliser dans n'importe quelle méthode personnalisée dans ProductsController?

Répondre

10

Il est défini dans ActionController :: Metal. ApplicationController hérite de ActionController :: Base, qui appartient à ActionController :: Metal. Si vous regardez l'API Rails au http://api.rubyonrails.org/, vous trouverez params est juste une fonction qui retourne les paramètres de l'objet request.

7

Les paramètres sont en cours d'analyse dans le middleware appelé ActionDispatch::ParamsParser. La fonction params dans ActionController::Metal est un wrapper pour cela.