rails路由除了没有符号

时间:2012-04-01 03:44:54

标签: ruby-on-rails

我遇到了一些遵循这种格式的路线:

resources :foobar, except: "create"

我只是想知道如何使用“except:”代替符号“:except”,正如我在大多数文档中看到的那样。

在这种情况下实际发生了什么?它是否正在调用一个名为“except”的方法?结肠做什么?

1 个答案:

答案 0 :(得分:2)

Ruby 1.9支持JavaScript-ish Hash语法,所以:

resources :foobar, except: 'create'

与此相同:

resources :foobar, :except => 'create'

新语法虽然有limitations

  1. 哈希键必须是符号。
  2. 密钥不能是您通常引用的内容,因此您不能将其用于:'this.that'等符号。
  3. 您不能将其用于:$set等符号(如果您使用的是MongoDB,则会出现在所有地方)。
  4. 我不确定具体限制是什么,因为我不使用它(我做了一些MongoDB工作,我有一个事情是为了保持一致)但我认为符号需要匹配/^[a-z_]\w*/i (或技术上,可用作标签的任何东西)与新格式一起使用。