【问题标题】:generated path does not match custom route?生成的路径与自定义路由不匹配?
【发布时间】:2016-08-18 19:53:35
【问题描述】:

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

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"  %>

【问题讨论】:

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


    【解决方案1】:

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

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

    您还需要确保您的控制器在app/controllers/trackers_controller.rb 可用(注意多个)。

    【讨论】:

    • 射击。重做控制器,使语法匹配!
    • 销毁控制器,然后以复数形式重新生成。有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 2016-04-29
    • 2015-07-15
    • 2012-05-20
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多