ruby-on-rails - Rails 路线前缀错误

标签 ruby-on-rails routes prefix

将资源“like”重命名为“love”时出现奇怪的错误

在routes.rb中我改变了:

resources :likes
resources :recipes do
  member do
    get :likes
  end
end

resources :loves
resources :recipes do
  member do
    get :loves
  end
end

和 rake:routes 说

              loves GET    /loves(.:format)                        loves#index
                    POST   /loves(.:format)                        loves#create
           new_lofe GET    /loves/new(.:format)                    loves#new
          edit_lofe GET    /loves/:id/edit(.:format)               loves#edit
               lofe GET    /loves/:id(.:format)                    loves#show
                    PATCH  /loves/:id(.:format)                    loves#update
                    PUT    /loves/:id(.:format)                    loves#update
                    DELETE /loves/:id(.:format)                    loves#destroy
       loves_recipe GET    /recipes/:id/loves(.:format)            recipes#loves
            recipes GET    /recipes(.:format)                      recipes#index
                    POST   /recipes(.:format)                      recipes#create
         new_recipe GET    /recipes/new(.:format)                  recipes#new
        edit_recipe GET    /recipes/:id/edit(.:format)             recipes#edit
             recipe GET    /recipes/:id(.:format)                  recipes#show
                    PATCH  /recipes/:id(.:format)                  recipes#update
                    PUT    /recipes/:id(.:format)                  recipes#update
                    DELETE /recipes/:id(.:format)                  recipes#destroy

当然我得到了一个错误

未初始化常量 User::Lofe

但是前缀“Lofe”从哪里来?对我来说看起来有点奇怪

最佳答案

这是由于 Rails 中主动支持多元化功能所致。

解决您的问题:

config/initializers/inflections.rb中添加以下内容:

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

运行$ rake:routes后我得到:

 Prefix Verb   URI Pattern               Controller#Action
loves_index GET    /loves(.:format)          loves#index
            POST   /loves(.:format)          loves#create
  new_loves GET    /loves/new(.:format)      loves#new
 edit_loves GET    /loves/:id/edit(.:format) loves#edit
      loves GET    /loves/:id(.:format)      loves#show
            PATCH  /loves/:id(.:format)      loves#update
            PUT    /loves/:id(.:format)      loves#update
            DELETE /loves/:id(.:format)      loves#destroy

关于ruby-on-rails - Rails 路线前缀错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31326919/

相关文章:

arrays - 为什么/如何使用最长的正确前缀/后缀算法?

indexing - “logstash-”是kibana中索引的必需前缀吗?

javascript - rails : View javascript object's attributes in browser's console

ruby-on-rails - 乘客问题 : "no such file to load" --/config/environment

ruby-on-rails - 如何使用 ruby​​ geocoder gem 限制位置的数量?

mysql - Laravel 从多对多数据透视表中删除单个数据

.net - 在 vb .net 中使用命名空间前缀解析 XML

ruby-on-rails - Devise + Omniauth [警告: Can't verify CSRF token authenticity]

angularjs - Angular 路线无限循环

c++ - 网络服务调度员