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
является оболочкой для этого.