カロリーメイトください

Barbaroi Ware(バルバロイ・ウェア)という名前でアプリ開発してます

『Ruby on Rails チュートリアル』「第14章 ユーザーをフォローする」2

railstutorial.jp

序文

Railsチュートリアル31日目。

うーん、なかなか本調子に戻らない。
やることいっぱい残ってるのにー。

進捗

  • 第14章 ユーザーをフォローする
    • 14.1 Relationshipモデル

コード実装部分(一部)

/sample_app/app/models/user.rb

class User < ApplicationRecord
  
(中略)  
  
  # Userは多数の"フォローしている関係"を持っている
  # フォローしている関係モデルはRelationshipクラスであらわされる
  # follower_idが外部キーとなってユーザーモデルとつながっている
  # ユーザーモデルが削除されると"フォローしている関係"も破棄される
  has_many :active_relationships, class_name:  "Relationship",
                                  foreign_key: "follower_id",
                                  dependent:   :destroy

  # UserはActiveRelationship(フォローしている関係)を通じて
  # 多数の「フォロー相手」を持っている
  # 「フォロー相手」はfollowed_idでつながっている
  has_many :following, through: :active_relationships, source: :followed
                                  
  # Userは多数の"フォローされている関係"を持っている
  # フォローされている関係モデルはRelationshipクラスであらわされる
  # followed_idが外部キーとなってユーザーモデルとつながっている
  # ユーザーモデルが削除されると"フォローされている関係"も破棄される
  has_many :passive_relationships, class_name:  "Relationship",
                                   foreign_key: "followed_id",
                                   dependent:   :destroy
                                   
  # UserはPassiveRelationship(フォローされている関係)を通じて
  # 多数の「フォローされている相手」を持っている
  # 「フォローされている相手」はfollower_idでつながっている
  has_many :followers, through: :passive_relationships, source: :follower                                   
  
(中略)  
  
  # ユーザーをフォローする
  def follow(other_user)
    following << other_user
  end

  # ユーザーをフォロー解除する
  def unfollow(other_user)
    active_relationships.find_by(followed_id: other_user.id).destroy
  end

  # 現在のユーザーがフォローしてたらtrueを返す
  def following?(other_user)
    following.include?(other_user)
  end
end

GitHub

github.com

実行結果

特になし

感想

Railsチュートリアル14章2日目。

follower、followed、followingあたりの用語で混乱をきたしていたので、整理のために14章を最初から読み直す。
案の定、解釈を間違えてコメントを書いている部分があった。

整理。
follower…フォロー元。それぞれのユーザーからみた場合は「ファン」。「Aのフォロワー」と言った場合は「A"を"フォローしている人」。すなわちAのファン。(「A"が"フォローしている人」ではない)
followed…フォロー先。それぞれのユーザーからみた場合は「神・カリスマ・アイドル」(適当な言葉がわからん…)。「Aのフォロー(ド)」と言った場合は「A"に"フォローされている人」。すなわちAのカリスマ。(「A"が"フォローされている人」ではない)
following…これもフォロー先。followedを複数形にするとfollowedsみたいな気持ち悪い形になるので代替として用いる。

すごくレベルの低い確認をしている気がする。

カロリーメイトください。

今日のunityroom

すたクラフト | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう www.youtube.com
昨日と同じ人です。
ちょっとレミングス的な。
チュートリアル的なのがあるといいのかなーとか思ったりしますが、この人はなんかあえてそういうの作ってない気がします。