Rails:在哪里定义“params”?

11

我在我的控制器中像这样使用params:

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

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

2个回答

11

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


7
参数实际上是在中间件中被解析的,该中间件称为 ActionDispatch::ParamsParser。在ActionController::Metal中,params函数是对此的封装。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接