現在、レビュー評価の平均値をhokkaido/showに表示しようと試みています。
試したこと
hokkaidos_controller.rbに、
def averages(hokkaido) @average_hokkaido_reviews = Review.group(:hokkaido_id).average(:evaluation) end
を記入
hokkaidos.show.html.erbに
<div> <%= @average_hokkaido_reviews %> </div>
を記入
コード
hokkaidos_controller.rb
class HokkaidosController < ApplicationController def index @hokkaidos = Hokkaido.all.page(params[:page]) end def show @hokkaido = Hokkaido.find(params[:id]) @hokkaido_reviews = @hokkaido.hokkaido_reviews.order('created_at DESC').page(params[:page]) counts(@hokkaido) end def counts(hokkaido) @count_hokkaido_reviews = hokkaido.hokkaido_reviews.count end def averages(hokkaido) @average_hokkaido_reviews = Review.group(:hokkaido_id).average(:evaluation) end end
hokkaidos.show.html.erb
<div class="area hokkaido"> <h1><%= @hokkaido.title %></h1> <ul class="media-list"> <div class="row"> <aside class="col-xs-6"> <div class="panel panel-default"> <div class="panel-heading"> <li class="media"> <img border="0" src="/images/<%= @hokkaido.image_url %>" class="sample" width = "480" height = "320"> <h2>商品情報</h2> <p><%= @hokkaido.content %></p> <div> <%= @average_hokkaido_reviews %> </div> <%= link_to 'レビュー一覧', hokkaido_hokkaido_reviews_path(@hokkaido, @hokkaido_review), class: 'btn btn-primary' %> <span class="badge">レビュー:<%= @count_hokkaido_reviews %>件</span> </li> </div> </div> </aside> </div> </ul> </div>
routes.rb
Rails.application.routes.draw do root to: 'toppages#index' get 'login', to: 'sessions#new' post 'login', to: 'sessions#create' delete 'logout', to: 'sessions#destroy' get 'signup', to: 'users#new' resources :users resources :hokkaidos, only: [:index, :show, :count] , shallow: true do resources :hokkaido_reviews, only: [:index, :new, :create, :destroy] end resources :touhokus, only: [:index, :show] , shallow: true do resources :touhoku_reviews, only: [:index, :new, :create, :destroy] end resources :kantous, only: [:index, :show], shallow: true do resources :kantou_reviews, only: [:index, :new, :create, :destroy] end resources :koushinetsus, only: [:index, :show], shallow: true do resources :koushinetsu_reviews, only: [:index, :new, :create, :destroy] end end
悩み事
以上の事を試みても、平均値が表示されませんでした。
そのため、平均値を実装する方法を検索しても、回答が見つかりませんでした。
検索しても見つからないため、どなたかわかる方がいらっしゃいましたら、アドバイスをお願いできませんでしょうか?
回答1件
あなたの回答
tips
プレビュー