2016-08-18 13 views
0

(Rails 4.2) У меня есть пропущенный маршрут маршрутов, который находится в файле routes.rb по сравнению с созданной с моей страницы. Что я делаю неправильно? Это сгребают маршрут Я хочу получить доступ:сгенерированный путь не соответствует пользовательскому маршруту?

see_hint_deck_card_tracker GET /decks/:deck_id/cards/:card_id/trackers/:id/see_hint(.:format) trackers#see_hint 

Я на самом деле принято, что я думаю, что это правильный URL, но он говорит мне, что у меня нет маршрута для этой страницы:

http://localhost:3000/decks/9/cards/2/trackers/1/see_hint 

у меня есть следующие маршруты:

resources :decks do 
    resources :cards do 
     resources :trackers do 
     member do 
      get 'see_hint' 
     end 
     end 
    end 
    end 

приложение/контроллеры/tracker_controller.rb:

class TrackerController < ApplicationController 
    def show_hint 
     puts 'we found this' 
    end 
end 

внутри моего/палуб /: идентификатор/карт /: ид/шоу У меня есть эта link_to: (get_tracker, требует вспомогательного метода, чтобы получить правильный трекер)

<%= link_to "Reveal Hint", see_hint_deck_card_tracker_path(@card.deck, @card, get_tracker), id: "reveal_hint_button" %> 

ответ

2

Я думаю, что ваше сообщение об ошибке вероятно, сообщая вам, что у вас нет Контроллер для этого маршрута, а не то, что отсутствует Маршрут. Это потому, что вы используете множественное число resources в вашем routes.rb, но ваше имя контроллера в единственном числе:

# Your Code: 
resources :trackers 
controller TrackerController 

# Expected Code: 
resources :trackers 
controller TrackersController 
       ^^^ 

Вы также хотите, чтобы убедиться, что ваш контроллер доступен на app/controllers/trackers_controller.rb (обратите внимание на множество).

+0

Стрелять. Верните контроллер, чтобы соответствовала грамматике! – Michael

+0

Уничтожьте контроллер, чем повторно создайте во множественном числе. Работает! – Michael