artists/show: refactor post previews.

This commit is contained in:
evazion
2020-01-12 20:12:03 -06:00
parent 8ddf7ee716
commit 76c4ba6f18
3 changed files with 8 additions and 32 deletions

View File

@@ -44,7 +44,6 @@ class ArtistsController < ApplicationController
def show
@current_item = @artist = Artist.find(params[:id])
@post_set = PostSets::Artist.new(@artist)
respond_with(@artist)
end
@@ -80,7 +79,6 @@ class ArtistsController < ApplicationController
redirect_to artist_path(@artist)
else
@artist = Artist.new(name: params[:name])
@post_set = PostSets::Artist.new(@artist)
respond_with(@artist)
end
end

View File

@@ -1,24 +0,0 @@
module PostSets
class Artist < PostSets::Post
attr_reader :artist
def initialize(artist)
super(artist.name)
@artist = artist
end
def posts
@posts ||= begin
query = ::Post.tag_match(@artist.name).where("true /* PostSets::Artist#posts */").limit(10)
query.each # hack to force rails to eager load
query
end
rescue ::Post::SearchError
::Post.none
end
def presenter
::PostSetPresenters::Post.new(self)
end
end
end

View File

@@ -12,15 +12,17 @@
<%= yield %>
<div class="recent-posts">
<h2>Recent Posts</h2>
<% if @artist.tag.present? && @artist.tag.post_count > 0 %>
<div class="recent-posts">
<h2>Recent Posts <%= link_to "»", posts_path(tags: @artist.name) %></h2>
<%= render "posts/partials/common/inline_blacklist" %>
<%= render "posts/partials/common/inline_blacklist" %>
<div>
<%= @post_set.presenter.post_previews_html(self) %>
<div>
<%= post_previews_html(@artist.tag.posts.limit(8), tags: @artist.name) %>
</div>
</div>
</div>
<% end %>
</div>
</div>