私はRoRを学ぶための簡単なウェブサイトを作っています。ユーザーはムービーのレビューを投稿できますが、ルートビューにリンクを実装して、データベース内のすべてのレビューを表示したいと考えています。それ、どうやったら出来るの?すべてのモデルですべての関連付けをロードするには
私は<%= link_to 'Reviews', reviews_path %>
にできるようにしたいが、私のreviews#index
URIパターンが/movies/:movie_id/reviews
私は、データベース内のすべてのレビューを抽出するために、私のレビューモデルに何を置けばいいのですか?
マイレビューコントローラ:
class ReviewsController < ApplicationController
def create
@movie = Movie.find(params[:movie_id])
@review = @movie.reviews.create(review_params)
redirect_to movies_path(@movie)
end
private
def review_params
params.require(:review).permit(:email, :comment)
end
end
レビューモデル:
class Review < ApplicationRecord
belongs_to :movie
end
そして、私のルートビュー:
<h3>All Reviews:</h3>
<!-- put link here -->
<h3>Sort By:</h3>
<p>
<%= link_to 'Release', movies_path(:sort_param => "release") %>
<%= link_to 'Title', movies_path(:sort_param => "title") %>
</p>
<h1>Popular Movies</h1>
<% @movies.each do |m| %>
<h2>Title</h2>
<%= m.title %>
<%= m.release %>
<%= link_to 'Show', movie_path(m) %>
<% end %>
編集:私はthis解に見えたが、私はよく分かりませんそのコードをどこに置くか。私はレビューのインデックスメソッドでそれを入れてみましたが、私はエラーを得た:
Couldn't find all Reviews with 'id': (all, {:order=>"created_at DESC", :limit=>10})
しかし、私は今レビュー#インデックスに関連する2つのURIパターンを持っています。 '/ movies /:movie_id/reviews'と'/reviews'それが正しいものになることをどうやって確認しますか? – Jason