Rails: где определены "параметры"?

Я использую params в своем контроллере следующим образом:

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

Является ли params атрибутом ApplicationController? Я думаю, нет, потому что у него нет префикса @. Итак, что на самом деле params? Могу ли я использовать его в любом пользовательском методе в ProductsController?

Ответ 1

Он определен в ActionController:: Metal. ApplicationController наследует от ActionController:: Base, которая вступает в действие с ActionController:: Metal. Если вы посмотрите на API Rails в http://api.rubyonrails.org/, вы обнаружите, что params - это просто функция, возвращающая параметры request объект.

Ответ 2

Параметры фактически анализируются в промежуточном программном обеспечении, называемом ActionDispatch:: ParamsParser. Функция params в ActionController::Metal является оболочкой для этого.