Rails:定义“params”的地方?

时间:2010-12-15 23:35:18

标签: ruby-on-rails params ruby-on-rails-3

我在我的控制器中使用params,如下所示:

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

params的属性是ApplicationController吗?我猜不是,因为它没有@前缀。那么,实际上params是什么?我可以在ProductsController中的任何自定义方法中使用它吗?

2 个答案:

答案 0 :(得分:10)

它在ActionController :: Metal中定义。 ApplicationController继承自ActionController :: Base,它来自ActionController :: Metal。如果你在http://api.rubyonrails.org/查看Rails API,你会发现params只是一个返回request对象参数的函数。

答案 1 :(得分:7)

参数实际上是在名为ActionDispatch::ParamsParser的中间件中解析的。 params中的ActionController::Metal函数是此函数的包装器。