Rails: где определяется «params»? - PullRequest
11 голосов
/ 16 декабря 2010

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

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

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

Ответы [ 2 ]

10 голосов
/ 16 декабря 2010

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

7 голосов
/ 16 декабря 2010

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

...