mew*_*ewi 2 ruby ruby-on-rails
查看这段代码:
params[:id]
Params 被认为是一种方法。如果我错了请纠正我。但这就像从哈希中读取一样。所以,我目前很困惑。
如果 params 是一个方法:所示的代码示例如何工作?
你是对的,这params是一个方法,但这里该params方法返回一个实例ActionController::Parameters,我们#[]对其调用哈希访问器方法。
这是 ruby 中调用返回对象的方法的常见模式。让我们通过一个简单的例子来看看:
def params
{
id: 101,
key: 'value',
foo: 'bar'
}
end
params[:id] # => 101
params[:foo] # => 'bar'
Run Code Online (Sandbox Code Playgroud)
正如您在示例中看到的,方法params返回一个哈希对象,我们对#[]返回的对象调用哈希访问器方法。
def params
@_params ||= begin
context = {
controller: self.class.name,
action: action_name,
request: request,
params: request.filtered_parameters
}
Parameters.new(request.parameters, context)
end
end
Run Code Online (Sandbox Code Playgroud)
ruby 初学者注意:在 ruby 中,我们可以调用不带括号的方法。所以,上面的调用相当于params()[:id].
| 归档时间: |
|
| 查看次数: |
504 次 |
| 最近记录: |