我在我的控制器中使用params
,如下所示:
class ProductsController < ApplicationController
def create
@product = Product.new(params[:aircon])
...
end
end
params
的属性是ApplicationController
吗?我猜不是,因为它没有@
前缀。那么,实际上params
是什么?我可以在ProductsController
中的任何自定义方法中使用它吗?
答案 0 :(得分:10)
它在ActionController :: Metal中定义。 ApplicationController继承自ActionController :: Base,它来自ActionController :: Metal。如果你在http://api.rubyonrails.org/查看Rails API,你会发现params
只是一个返回request
对象参数的函数。
答案 1 :(得分:7)
参数实际上是在名为ActionDispatch::ParamsParser的中间件中解析的。 params
中的ActionController::Metal
函数是此函数的包装器。