acts_as_follower を使ってみる

参考:

GitHub - tcocca/acts_as_follower: A Gem to add Follow functionality for models

 

acts_as_follower は、dev.to の Gemfile を見たときに、「使っている人いるんだ」と思ったのが興味を持ったきっかけ。

上記の参考リンクの通り、Gemfile に記述:

gem 'acts_as_follower', github: 'tcocca/acts_as_follower', branch: 'master'

インストール:

bundle install

以下のコマンドを実行:

rails generate acts_as_follower

マイグレーションファイルが作成されるので、DBに反映させる:

rails db:migrate

f:id:matt-note:20180915160345p:plain

上記のようなエラーが発生する。Rails のバージョンを [4.2] のように指定するようにとのこと。

ファイルは db/migrate/ にあるので、修正して、rails db:migrate

f:id:matt-note:20180915160813p:plain

無事、follows テーブルが作成された。

適当に User モデルを作る:

rails g scaffold User name:string

rails db:migrate

User モデルに、以下のメソッドを追記:

f:id:matt-note:20180915165206p:plain

コンソールから、ユーザーを作成:

rails c

User.create({name: "taro"})

User.create({name: "jiro"})

あとは、Railsでフォロー/フォロワー機能を実装する を参考に、メソッドについて見ていく。

フォローするメソッドを実行する:

taro = User.find(1)

jiro = User.find(2)

taro.follow(jiro)

上記のメソッドで、taro が jiro をフォローする。

f:id:matt-note:20180915170436p:plain

DEPRECATION WARNING を出しながらも、とにかくフォロー機能を作成できた。

フォローを削除する機能もある:

f:id:matt-note:20180915171521p:plain