0

Rails開発初心者です。

review と呼ばれる新しいデータベース モデルと reviews_controller と呼ばれるコントローラーを作成しました。ルート ファイルで、レビュー用のリソースを作成しました。ただし、リンクで reviews#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 

私はこれについてどこにも行けないので、これに関する助けをいただければ幸いです。

4

1 に答える 1

1

SOへようこそ!

特定のレビューにリンクしているため、レビューの ID を link_to メソッドに渡す必要があります。

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

Rails は、@review オブジェクト全体を取得してその ID を割り出すほどスマートです。

または、すべてのレビューにリンクすることもできます

<li><%= link_to "Reviews", reviews_path %></li>

ヘッダー部分にこのリンクがあると言ったので、これが実際にやりたいことかもしれません。

于 2013-01-04T23:45:34.433 に答える