11

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

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

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

4

2 回答 2

10

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

于 2010-12-15T23:39:18.967 回答
7

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

于 2010-12-15T23:45:49.360 回答