Rails中的:to和=>有什么区别?

5

我注意到Rails社区越来越多地使用“:”符号来表示更多的事情。最近在代码审查中,我收到了这样的评论:

post 'examples/', to: 'examples#index'

比这更好的是:
post "examples/" => "examples#index"

我的问题是:

  1. 这两种陈述方式有什么区别吗?
  2. 如果有,为什么其中一种比另一种更好?
  3. 为什么Rails社区转向“:”符号表示法(或他们是吗)?
  4. 随着Rails 4和很快的5版版本的到来,这两种格式还都是可接受的吗?

冒号是一种简写方式,用于当键是符号时。这在Rails 4 => 5中不会产生任何影响 - 这是Ruby语言的一个特性。 - max pleaner
从技术上讲,第一个与post "examples/" :to => "examples#index"相同。post方法接受多个定义,包括一个简单的哈希表。 - tadman
1个回答

13

在Rails路由的上下文中:

  • 这两个语句有区别吗?

没有区别。

  • 如果有区别,为什么一个比另一个更好?

不,它们是一样的。

  • 为什么Rails社区要转向“:��符号(或者说他们是这样做了)?

只是为了更可读,'from' => 'to''from', to: 'to'

  • 随着Rails 4和很快的5的到来,这两种格式都还可以接受吗?

可以。

“=>”符号是Ruby哈希特性,与“:symbol”相关。你可以用两种方式写symbol: :key => valuekey: value


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接