私は初心者で、少し混乱しているものがあります。
テレビ番組の Metacritic に似た Web サイトがあります。私の 2 つのテーブルは番組とレビューです。
私のショー(テレビ番組のように)コントローラーがあります
def show
@show = Show.find(params[:id])
@reviews = @show.reviews.paginate(page: params[:page])
@ratings = @show.reviews.average("rating")
respond_to do |format|
format.html # show.html.erb
format.json { render json: @show }
end
end
そして私のショービュー
<p id="notice"><%= notice %></p>
<div class="row">
<aside class="span4">
<section>
<h1>
<p>
<%= @show.name %> ( <%= @show.year %>
)
</p>
<p>
<b>Synopsys:</b>
<%= @show.synopsys %>
</p>
<p>
<b>Note:</b>
<%= @ratings %>
</p>
<%= image_tag @show.avatar.url %>
</h1>
</section>
<section>
</section>
</aside>
<div class="span8">
<% if @show.reviews.any? %>
<h3>Reviews (<%= @show.reviews.count %>)</h3>
<ol class="reviews">
<% @reviews.each do |review| %>
<%= review.content %> <br> <%= review.source %> | <b><%= review.rating %> </b><br><br>
<br><br>
<% end %>
</ol>
<%= will_paginate @reviews %>
今、私は自分のホーム ビュー (コントローラー ホーム) で同様のことをしようとしています。すべての番組をデータベースとその全体的な評価に追加したいと考えています。ショー コントローラーのコンテンツをホーム コントローラーにコピーすると、レビューが定義されておらず、その理由がわかりません。誰でも助けることができますか?
class HomeController < ApplicationController
def index
@shows = Show.all
@ratings = @show.reviews.average("rating")
respond_to do |format|
format.html # show.html.erb
format.json { render json: @show }
end
def about
end
def contact
end
end
end