JavaScriptなどプログラミングに関する投稿をしています。コメントを残すRailsTutorialを参考に、DeviseユーザーでTwitterライクなフォロー機能を作りました。Deviseのルーティングやメソッドなどを使っています。trueendend複合キーインデックスは、follower_idとfollowed_idの組み合わせを必ずユニークにし、あるユーザーが同じユーザーを2回以上フォローすることを防いでいます。trueend仮想的にUserモデルを2つに分けるためにactive_relationshipsとpassive_relatoinshipsというふうに別名をつけています。followersはそれぞれsourceから名前を上書きしています。followingによる関連付けを使ってfollow、unfollow、following?メソッドを作成します。ここではUserは2つとなるのでselfではなくother_userを使います。following?(other_user)following.include?(other_user)endendルーティング本記事ではdevise_scopeでルーティングを設定しましたが、showページの代わりとしてprofileを作っています。フォローユーザー一覧のfollowingと、フォロワー一覧のfollowersを設定します。relationshipsリソースを追加して、リレーションシップの作成(create)、削除(destroy)をできるようにします。:destroy]end必要なテンプレートの作成フォロワーの統計情報を表示するパーシャルの作成です。idのfollowingとfollowersはのちにajaxリクエストに使うものです。%></strong></a></div>次の記述では上記の統計情報の表示と、follow/unfollowのボタンを表示させるものですが、ログインしているユーザーのみにとしています。%></section>次のパーシャルでfollowとunfollowのパーシャルに分岐しています。%>followボタンとunfollowボタンとなるパーシャルは、それぞれremote:trueでajaxリクエストします。%>followingアクションとfollowersアクション次の2つのアクションをshow_followページ一つで読み込むようにしています。}format.jsendendendこれらのアクションが呼び出すjs.erbファイルを作成します。%>');以上で完成です!最後までご覧いただきありがとうございました!もし、間違っている点などありましたらご指摘いただけると幸いです。コメントを残すチェックボックスのboolean値をajaxリクエストでデータベース更新を手軽にするやり方です。#rails5はこれを入れないとjQueryが動きませんサンプルとしてscaffoldでユーザーを作ります。falseを追加します。users#destroyControllers特にrenderの記述はしなくても勝手にやってくれます。trueを指定します。これでajaxリクエストになりますね。アクションと同名のjs.erbファイルをレンダーしてくれます。%>');分かりやすくするためにクラスをつけています。#f18686;}}以上です。間違っていたら教えていただけるとありがたいです。