第14章の実績
第14章 ユーザーをフォローする を実施しました!
実施時間: 5時間
学べたこと
- 多対多のリレーションシップ
多対多の関係を持つモデルの場合でもRailsでは簡単にリレーションシップを表現することができます。ただし、これまでの1対多の関係性のように命名からだけでは指定できないので、「クラス名(class_name:)」や「外部キー(foreign_key:)」を指定する必要があります。これにより事実上は1対多と多対1となる連関モデルによるリレーションシップが作られます。 - resourcesブロックの内側で:memberメソッド
ルーティングにおいて resources の:memberメソッド を用いることで、「 /users/1/following」 や 「/users/1/followers」 といったURLを扱うことができるようになります。 - Ajaxリクエスト
Railsではとても簡単にAjaxを用いたリクエスト通信を実装することが可能です。form_for()メソッドに、「remote: true」 引数を加えるだけです。
一応仕組みとしては、この記述により、<form>タグにdata-remote=”true”という属性が書き出さされ、この属性を目印にRailsのJavaScriptがAjax通信をしてくれます。
ただし、Controller側では標準ではhtml出力されるので、「respond_to」メソッドにより出力出し分けるという対応も必要です。
その他の追加機能
これで当初目標としていたRailsを用いたサンプルアプリケーション実装は終了です。ただ、これはもちろん基礎的なものですので改良の余地は多々あります。最後に色々な改良案が載せてありましたので転載します。
- ユーザ毎のダイレクトメッセージ機能
- メールでの通知機能
- RSSフィード
- REST API
- ユーザやマイクロソフトなどの検索機能
…etc
俺たちの戦いはこれからだ!ということですね。
参考
環境
- ruby: 2.3.3
- ruby on rails: 5.1.4
- OS: Windows 10 (64bit)
- IDE: IntelliJ ULTIMATE 2018.1
- リポジトリ:GitHub
リンク
【スポンサードリンク】
![](http://image.moshimo.com/af-img/0330/000000015158.jpg)
![](http://image.moshimo.com/af-img/0288/000000021425.jpg)