生成的路径与自定义路由不匹配?

时间:2016-08-18 19:53:35

标签: ruby-on-rails-4 routes custom-routes

(Rails 4.2) 我对routes.rb文件中的路由与我的页面生成的路由不匹配。我做错了什么? 这是我想要访问的raked路线:

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

我实际上接受了我认为正确的网址,但它告诉我我没有这个页面的路线:

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

app / controllers / tracker_controller.rb:

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

在我的/ decks /:id / cards /:id / show我有这个link_to :( get_tracker,调用帮助器方法来获取正确的跟踪器)

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

1 个答案:

答案 0 :(得分:2)

我认为您的错误消息可能告诉您该路由没有 Controller ,而不是 Route 缺失。这是因为您在routes.rb中使用了复数# Your Code: resources :trackers controller TrackerController # Expected Code: resources :trackers controller TrackersController ^^^ ,但您的控制器名称是单数:

app/controllers/trackers_controller.rb

您还需要确保您的控制器在.container处可用(请注意多个)。