2013-04-26 2 views
1

У меня есть следующие маршруты:Rails 3 маршрут имеет неверную форму единственного числа

resources :businesses, only: [:show, :index, :new, :create] do 
    resources :pledge_drives 
end 

Это создает следующее:

% rake routes | grep pledge 
    business_pledge_drives GET /businesses/:business_id/pledge_drives(.:format)           pledge_drives#index 
          POST /businesses/:business_id/pledge_drives(.:format)           pledge_drives#create 
    new_business_pledge_drife GET /businesses/:business_id/pledge_drives/new(.:format)          pledge_drives#new 
edit_business_pledge_drife GET /businesses/:business_id/pledge_drives/:id/edit(.:format)        pledge_drives#edit 
     business_pledge_drife GET /businesses/:business_id/pledge_drives/:id(.:format)          pledge_drives#show 
          PUT /businesses/:business_id/pledge_drives/:id(.:format)          pledge_drives#update 
          DELETE /businesses/:business_id/pledge_drives/:id(.:format)          pledge_drives#destroy 

я не хочет метод URL помощника будет называться business_pledge_drife_path. Как я могу исправить Rails в своей уникальности drives? Фактические URL-адреса в порядке.

Редактировать:this answer получил это право. Я добавил следующее конфиг/инициализаторах/inflections.rb:

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.plural 'drive', 'drives' 
    inflect.singular 'drives', 'drive' 
end 

Теперь мои маршруты:

 business_pledge_drives GET /businesses/:business_id/pledge_drives(.:format)           pledge_drives#index 
          POST /businesses/:business_id/pledge_drives(.:format)           pledge_drives#create 
    new_business_pledge_drive GET /businesses/:business_id/pledge_drives/new(.:format)          pledge_drives#new 
edit_business_pledge_drive GET /businesses/:business_id/pledge_drives/:id/edit(.:format)        pledge_drives#edit 
     business_pledge_drive GET /businesses/:business_id/pledge_drives/:id(.:format)          pledge_drives#show 
          PUT /businesses/:business_id/pledge_drives/:id(.:format)          pledge_drives#update 
          DELETE /businesses/:business_id/pledge_drives/:id(.:format)          pledge_drives#destroy 
+1

Это может помочь: http://stackoverflow.com/questions/4028992/custom-inflections-not-working-on-rails3 – iltempo

ответ

1

Большую часть времени, рельсы знает о правильных множественного числа этих слов, например: модель имя. Однако в других случаях вы можете определить правильные преобразования в рельсах с помощью перехвата.