現状コード:
当方rails 初心者です。
やりたいこと:
現在、自分が描いた漫画を投稿して、みんなで読めるようなwebアプリを作成しています。
そして、その漫画一つ一つにいいねをつけることができ、そのいいねの数によってランキングされるという機能を実装中です。
エラーコード: index.html.erbで発生
undefined method `front_cover' for [1, 1]:Array
現状コード:
ruby
1#Comics_controller 2class ComicsController < ApplicationController 3 before_action :authenticate_user! ,only: [:show, :search] 4 def index 5 like_ranking = Like.group(:comic_id).count 6 @comic_ranking = like_ranking.sort_by{|_, v| -v } 7 end 8end 9
ruby
1#Likes_controller 2def create 3 @comic_liked = Comic.find(params[:id]) 4 @comic_liked.likes.find_or_create_by(user_id: params[:user_id]) 5 @comic_liked.update(like: @comic_liked.like+1) 6 redirect_to :controller => 'comics', :action => 'index' 7 end
ruby
1#index.html.erb 2<% @comic_ranking.each do |like| %> 3 <tr> 4 <td><%= image_tag like.front_cover.to_s %></td> 5 <td><%= like.title %></td> 6 <td><%= like.author %></td> 7 </tr> 8 <% end %> 9<table> 10 <thead> 11 <tr> 12 <th>作品表紙</th> 13 <th>作品タイトル</th> 14 <th>作者</th> 15 </tr> 16 </thead>
ruby
1#Comic.rb 2class Comic < ActiveRecord::Base 3 has_many :users, through: :likes 4 has_many :likes, dependent: :destroy 5 mount_uploader :front_cover, FrontCoverUploader 6end
ruby
1#Like.rb 2class Like < ActiveRecord::Base 3 belongs_to :comic, counter_cache: :like 4 belongs_to :user 5end
質問:エラーコード解消法を教えてください。
ハッシュデータがレシーバだからメソッドが使えないのかと思ったのですが、お時間がある時にお聞かせ願えればと思います。足りないコードがあればすぐに対応いたします。
宜しくお願い申し上げます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/15 08:31
2017/04/15 08:40 編集
2017/04/15 08:53 編集
2017/04/15 15:09