Rails,没有路由匹配{:action =>“show”

时间:2013-04-23 15:28:43

标签: ruby-on-rails routes

这让我很难过,做了一个新的控制器

class ScorecardsReviewController < ApplicationController
  before_filter :require_staff_user

  layout 'unbranded'

  def index
    @scorecards = Scorecard.in_review
  end
end

将此添加到路线

  resources :scorecards_review

在主页上添加了一个链接

.left
  = link_to 'Home', root_path
  = link_to 'About', about_home_path
  = link_to 'Legal', disclaimer_home_path
.right
  - if current_user.try(:admin?)
    = link_to 'Agencies', agencies_path
    = link_to 'Inaccurate scorecards', reported_scorecards_path
    = link_to 'Reviews', scorecards_review_path 
  - if current_user
    = link_to 'Logout', logout_path
.clear

刷新应用程序,我得到以下

No route matches {:action=>"show", :controller=>"scorecards_review"}

当我掠夺资产然后我发现一切都在那里

                            POST   /scorecards_review(.:format)                                  {:action=>"create", :controller=>"scorecards_review"}
      new_scorecards_review GET    /scorecards_review/new(.:format)                              {:action=>"new", :controller=>"scorecards_review"}
     edit_scorecards_review GET    /scorecards_review/:id/edit(.:format)                         {:action=>"edit", :controller=>"scorecards_review"}
          scorecards_review GET    /scorecards_review/:id(.:format)                              {:action=>"show", :controller=>"scorecards_review"}
                            PUT    /scorecards_review/:id(.:format)                              {:action=>"update", :controller=>"scorecards_review"}
                            DELETE /scorecards_review/:id(.:format)                              {:action=>"destroy", :controller=>"scorecards_review"}

我不知道它会是什么?

2 个答案:

答案 0 :(得分:5)

您可能需要将scorecards_review_path更改为scorecards_reviews_path(评论末尾带有s)

答案 1 :(得分:4)

我想你可能想要

resources :scorecards_reviews # plural

它将为您提供指向索引操作的路径,我认为这是您正在寻找的内容。