Ruby on Rails チュートリアルをやってみた【第14章】

Ruby on Rails チュートリアルをやってみた【第14章】
カテゴリ
技術
タグ
ruby
ruby on rails

第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
https://github.com/nisioka/RubyOnRailsTutorial/tree/static-pages

リンク

【スポンサードリンク】


関連記事

  1. Ruby on Rails チュートリアルをやってみた【第14章】

    第14章の実績 第14章 ユーザーをフォローする を実施しました!実施時間: 5時間 学べたこと 多対多のリレーションシップ多対多の関係を持つモデルの場合でもRailsでは簡単にリレーションシップを表現することができます […]

  2. Ruby on Rails チュートリアルをやってみた【第13章】

    第13章の実績 第13章 ユーザーのマイクロポスト を実施しました!実施時間: 4.5時間 学べたこと モデルの関連付け「rails generate model Micropost content:text user: […]

  3. Ruby on Rails チュートリアルをやってみた【第12章】

    第12章の実績 第12章 パスワードの再設定 を実施しました!実施時間: 1.5時間 学べたこと 本章では特段新しいことはなかったです。 第11章 アカウントの有効化 と同じような内容で、復習に近いような内容でした。ただ […]

  4. Ruby on Rails チュートリアルをやってみた【第11章】

    第11章の実績 第11章 アカウントの有効化 を実施しました!実施時間: 1.5時間 学べたこと メール送信機能「rails generate mailer UserMailer account_activation p […]

  5. Ruby on Rails チュートリアルをやってみた【第10章】

    第10章の実績 第10章 ユーザーの更新・表示・削除 を実施しました!実施時間: 2時間 学べたこと before_action例えば本章では、「before_action :logged_in_user, only: […]

  6. Ruby on Rails チュートリアルをやってみた【第9章】

    第9章の実績 第9章 発展的なログイン機構 を実施しました!実施時間: 1.5時間 学べたこと cookies.permanent.signed[:user_id] = user.id上記コードは、「cookieに、永続 […]