昨日、友達からアーティスト ページにコメントを表示できないという問題がありました。この問題は解決しましたが、今は画像にコメントを表示するのに苦労しています。
現時点でやりたいことは、手動でデータベースに入力したコメントを表示し、画像の下に表示することだけです。
これは画像のモデルです:
class Image < ActiveRecord::Base
has_many :publishings
has_many :artists, :through => :publishings
has_many :comments,:through => :friends
has_many :comments, :as => :resource, :class_name => "Commentable"
end
これは画像の show.html です
<p id="notice"><%= notice %></p>
<div id="container">
<p>
<b>Title:</b>
<%= @image.title %>
</p>
<p>
<b>Filename:</b>
<%= @image.filename %>
<%= image_tag @image.filename %>
</p>
<p>
<b>Likes:</b>
<span id="images_<$=@image.id%>_likes_count"><%= @image.likes %></span>
</p>
<div id="comments">
<h2>Comments</h2>
<%= render :partial => "shared/comment", :collection => @image.comments%>
</div>
</div>
<%= link_to 'Like', like_image_path(@image), :method => :post %> |
<%= link_to 'Edit', edit_image_path(@image) %> |
<%= link_to 'Back', images_path %>
これは私が現在受け取っているエラーです:
> undefined method `first_name' for nil:NilClass
Extracted source (around line #16):
13: </p>
14: <p>
15: <b>First name:</b>
16: <%= @artist.first_name %>
17: </p>
18:
19: <p>
アプリケーション トレース
app/views/images/show.html.erb:16:in `_app_views_images_show_html_erb___1549892128_70077336775360_0'
app/controllers/images_controller.rb:18:in `show'
これは友達のモデルで、正しい方法を示しています。
class Friend < ActiveRecord::Base
has_many:friends
has_many :artists, :through => :publishings
def display_name
"#{self.first_name} #{self.second_name}"
end
end