【发布时间】:2014-02-17 22:36:53
【问题描述】:
<%= params[:action] %>
和
<%= params['action'] %>
显示
index
但是这种语法有什么区别呢?
【问题讨论】:
标签: ruby-on-rails-3
<%= params[:action] %>
和
<%= params['action'] %>
显示
index
但是这种语法有什么区别呢?
【问题讨论】:
标签: ruby-on-rails-3
在 Rails 中,params 哈希实际上是 HashWithIndifferentAccess,而不是标准的 ruby Hash 对象。这允许您使用'action' 之类的字符串或:action 之类的符号来访问内容。
无论您使用什么,您都会得到相同的结果,但请记住,这仅适用于 HashWithIndifferentAccess 对象。
【讨论】:
params.has_key? 而不是params.keys.include?,因为前者将正确返回符号或字符串,但后者将返回 false 符号.
params.key?。
ActionController::Parameters 不再扩展 HashWithIndifferentAccess,尽管您可以通过调用 to_h 或 to_hash 获得一个。 (请参阅this pull request 中的广泛讨论。)