railsチュートリアルの最終章にてフォロー機能を学びますが、
各ユーザーページ毎にしか「フォロー/フォロー解除」ボタンを導入しません。
ユーザー一覧画面の各ユーザーごとに「フォロー/フォロー解除」ボタンを導入したいと思っていますがなかなか難しかったのでこの場を借りて質問いたします。
やりたいことのイメージ画像
(ユーザー一覧画面の各ユーザーごとに「フォロー/フォロー解除」の追加)
自分なりに考えたこと
上の画像とは違い、ユーザー一覧ページには
**「フォローされていたり」、「フォローしていたり」、**様々なユーザーがいます。
ただでさえ複雑な「フォロー機能」なので正直、挫折しそうになりましたが、
色々と試して失敗した結果、if文を使用すればうまくいきそうかもといとこまで来ました。
そこで
ユーザー一覧画面にて
もし、フォローしていなければ「フォロー」ボタンを表示する
フォローしていれば「フォロー中」ボタンを表示する
というソースコードを書きたいと思いますが、ここで壁にぶつかり中です。
該当ソースコード
index.html.erb
<% if folliwed_id.blank? %> ←ここの文で悩んでいます。 <%= form_for(current_user.active_relationships.build) do |f| %> <div><%= hidden_field_tag :followed_id, user.id %></div> <%= f.submit "フォロー", class: "btn btn-primary" %> <% end %> <% else %> <%= form_for(current_user.active_relationships.find_by(followed_id: user.id), html: { method: :delete }) do |f| %> <%= f.submit "フォロー中", class: "btn" %> <% end %>
もし、folliwed_idを持っていなければ、「フォロー」ボタン。
持っていれば「フォロー中」ボタンを表示する。
まとめ
と、言う感じでif文を書けれたらユーザー一覧画面にも「フォロー機能」を導入できそうですが、全く検討違いを言っていたらすいません。
そんなことしなくてもこうしたらうまくいくよ!などありましたらご教授願います。