【问题标题】:Routes in Rails with controllers that end in 's'Rails 中带有以 's' 结尾的控制器的路由
【发布时间】:2011-08-31 08:04:40
【问题描述】:

这只是表面上的,但仍然让我发疯。我为我的 Address 对象创建了一个控制器,并尝试为它布置路线。但是,Rails 似乎将最后一个 's' 解释为复数并将其从我的路径中删除,如下所示:

routes.rb:

resources :address

(注意:此行位于名为 'admin' 的命名空间块内)

当我运行 rake routes 时,我得到了这个:

new_admin_addres
edit_admin_addres

... 等等。如何在我的路径中获得额外的“s”?

【问题讨论】:

    标签: ruby-on-rails resources routes


    【解决方案1】:

    resources :addresses 地址的复数形式

    【讨论】:

    • 如果我使用它找不到AddressesController。我用rails generate controller admin/Address 创建了控制器。
    • 其实就是rails g controller admin/Addressesrails guides
    • 您是否将其嵌套在 admin 命名空间中? namespace :admin { resources :addresses}
    • 我擦除了控制器并用复数名称创建了它。现在更有意义了。
    【解决方案2】:

    使用屈折变化将地址设置为不可数: config/initializers/inflections.rb

    ActiveSupport::Inflector.inflections do |inflect|
       inflect.uncountable %w( address )
    end
    

    现在应该忽略任何额外的 's'。语法不正确,但应该可以解决问题。

    【讨论】:

    • 这在您使用以 's' 结尾的首字母缩写词时也很有用
    猜你喜欢
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    相关资源
    最近更新 更多