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

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

第13章の実績

第13章 ユーザーのマイクロポスト を実施しました!
実施時間: 4.5時間

学べたこと

  • モデルの関連付け
    「rails generate model Micropost content:text user:references」とするだけで、"Micropost"と"User"のモデルが1対1の関係であることを関連づけられました。コード上では、Micropostクラスに"belongs_to :user"と表現されています。

  • 1対多のモデルの関連付け
    上記とは逆に、1対多の関係の関連付けは、「has_many」をモデルに記述することで表現します。ただしこれは上記と違ってコマンドで自動生成されないので手入力が必要なようです。

  • デフォルトスコープ
    次の記述をすることで、DBからの取得時の標準の出力結果を指定できます「default_scope -> { order(created_at: :desc) }」。この記述は、"
    created_at"列を降順(descending)の順序(order)で取得することを表します。

  • dependent: :destroy
    この記述をすることで、依存しているモデルが削除された時に紐づくモデルも連なって削除されます。チュートリアルの例では「ユーザーが削除されたときに、そのユーザーに紐付いたマイクロポストも一緒に削除される」こととなります。

  • (おまけ)それっぽいテストデータを作ってくれるFakerというライブラリが面白い。何章か前からユーザ名や今章ではマイクロソフトの投稿のサンプルとして使っていますが、他にも色々な種類のテストデータがあります。 Fakerのドキュメント (英語) を見ると、Japanese MediaにはDragonBallやOnePiece、SwordArtOnlineがあり、ドラゴンボールやワンピースは分かりますが、ソード・アート・オンラインが並ぶというのは中の人に好きな人でもいるのでしょうか?(笑)

独自にやったこと

ImageMagickインストール

Windowsについての導入手順が載っておらず、以下のURLリンクが貼ってあるのみでした。
http://www.imagemagick.org/script/download.php#windows

しかも、簡単には上手くいかず、上記を単純にインストールしただけだと、以下のように「Picture Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: ImageMagick/GraphicsMagick is not installed」というエラーが発生して画像のアップロードが上手くいきません。

image 13 1024x487

けれど、先人で解決している人がおり、こちらの方法で上手くいきました。

http://tomokiit.hatenablog.jp/entry/rails-curriewave-rmagick

参考

環境

  • 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

リンク

【スポンサードリンク】

000000015158

000000021425


関連記事

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

    Ruby_On_Rails_Logo.svg.png

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

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

    Ruby_On_Rails_Logo.svg.png

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

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

    Ruby_On_Rails_Logo.svg.png

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

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

    Ruby_On_Rails_Logo.svg.png

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

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

    Ruby_On_Rails_Logo.svg.png

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

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

    Ruby_On_Rails_Logo.svg.png

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