🐴
Rails いいねしたユーザーの一覧表示
はじめに
ポートフォリオ作成中のプログラミング学習初学者です🔰
今日はブログ投稿にいいねしたユーザーの一覧ページを作成しました!
あまり記事がなかったので、間違っているかもしれませんがお役に立てれば幸いです😀
(いいねは非同期で実装済みのていで進めます🙇🏻♀️)
model
下記の記述で、中間テーブルを経由して関連先のモデルを取得するのを簡単にします!
(liked_end_usersの名前の部分はなんでもOK!)
app/models/post_blog.rb
has_many :liked_end_users, through: :blog_likes, source: :end_user
これで、ある投稿(post_blog)にいいねしたユーザーの一覧を取り出したい場合にpost_blog.liked_end_usersで取り出せるようになります。
routing
end_users, only: []の部分は各自で調整してください!
routes.rb
resources :end_users, only: [] do
member do
get :likes
end
end
作成されたルーティング
likes_end_user GET /end_users/:id/likes(.:format) public/end_users#likes
view
いいね一覧のリンクをお好きな位置に設置してください!
app/views/public/post_blogs/show
<%= link_to "いいね", likes_end_user_path %>
controller
必要な変数を記述
app/controllers/public/end_users_controller.rb
class Public::EndUsersController < ApplicationController
def likes
@post_blog = PostBlog.find(params[:id])
end
end
いいねしたユーザーの一覧ページ
app/views/public/end_users/likes.html.erb
<% if @post_blog.liked_end_users.present? %>
<h2>いいねしたユーザー</h2>
<% @post_blog.liked_end_users.each do |end_user| %>
<%= image_tag end_user.get_profile_image(50, 50) %>
<p><%= end_user.first_name %></p>
<% end %>
<% else %>
<h2>いいねはありません</h2>
<% end %>
レイアウトはまだ整えてないのですが、こんな感じで無事いいねしたユーザーの一覧が表示されました!
参考にさせていただいた記事🌱
説明が大雑把&抜けているところがあるかもしれないです💦
間違いなどあればぜひ教えていただけますと幸いです🥲
Discussion
??
遅れました🥲