Rails路由/显示错误 - 没有路由匹配{:action =>“show”,:controller =>“reviews”}

时间:2013-01-04 23:29:06

标签: ruby-on-rails

我是rails开发的新手。

我创建了一个名为review的新数据库模型和一个名为reviews_controller的控制器。在我的路线文件中,我创建了评论资源。但是,当我尝试在链接中使用评论#show时,我收到了错误消息。没有路线匹配{:action =>“show”,:controller =>“reviews”}。

我看了这个错误,但是我发现的任何结果都比我使用的代码更复杂。我在这里缺少一些非常基本的东西。

模型的代码是

    class Review < ActiveRecord::Base
    belongs_to :user
    end

控制器的代码是

    class ReviewsController < ApplicationController
      def show
        @review = Reviews.find(params[:id])
      end

    def new
    end
    end

我在标题部分中的链接是

    <li><%= link_to "Review", review_path %></li>

我的路线文件中的代码

     resources :users      #New Line
     resources :sessions, only: [:new, :create, :destroy]
     resources :microposts, only: [:create, :destroy]
     resources :reviews 

任何对此的帮助都将非常感激,因为我无法在此处获得任何帮助。

1 个答案:

答案 0 :(得分:1)

欢迎来到SO!

由于您要链接到特定评论,因此您需要将评论的ID传递给link_to方法。

<li><%= link_to "Review", review_path(@review) %></li>

Rails非常聪明,可以使整个@review对象找出它的id。

或者,您可以使用

链接到所有评论
<li><%= link_to "Reviews", reviews_path %></li>

由于你说你的标题部分中有这个链接,这可能就是你真正想做的事情。