我注意到Rails社区越来越多地使用“:”符号来表示更多的事情。最近在代码审查中,我收到了这样的评论:
post 'examples/', to: 'examples#index'
比这更好的是:
post "examples/" => "examples#index"
我的问题是:
- 这两种陈述方式有什么区别吗?
- 如果有,为什么其中一种比另一种更好?
- 为什么Rails社区转向“:”符号表示法(或他们是吗)?
- 随着Rails 4和很快的5版版本的到来,这两种格式还都是可接受的吗?
我注意到Rails社区越来越多地使用“:”符号来表示更多的事情。最近在代码审查中,我收到了这样的评论:
post 'examples/', to: 'examples#index'
post "examples/" => "examples#index"
我的问题是:
在Rails路由的上下文中:
没有区别。
不,它们是一样的。
只是为了更可读,'from' => 'to'
和 'from', to: 'to'
可以。
“=>”符号是Ruby哈希特性,与“:symbol”相关。你可以用两种方式写symbol: :key => value
和 key: value
。
post "examples/" :to => "examples#index"
相同。post
方法接受多个定义,包括一个简单的哈希表。 - tadman