DockerでRailsチュートリアル(Toyアプリ編2)

公開日:2018-12-19
最終更新:2018-12-19
※この記事は外部サイト(https://rikka-rt.hatenablog.jp/entry/2018/...)からのクロス投稿です

前回の続きからです。

Micropostモデル作成

次はMicropostsリソースをscaffoldで作ります。コマンドの実行場所はtoy_app のままです。railsのコマンドには省略形が存在するため、今回はgenerateを省略形である g として入力してみます。

# rails g scaffold Micropost content:text user_id:integer  

Userリソースを作った時はエラーになりましたが、pgの設定を変更したためか今回は問題なく作成できたようです。

続いてDBの更新が必要らしいので、再びマイグレーションコマンドを入れます。

# rails db:migrate  

更に、動作確認のためにサーバーを起動します。こちらも、省略形の s で入力します。起動が出来たら、http://localhost:8080/microposts/new にアクセスしてみましょう。

# rails s  

後はチュートリアル通りに、幾つかデータを登録します。現状ではバリデーションなどが効いていないため、存在しないユーザーなども登録できるみたいです。
(user_id=2は存在しませんが登録できていますね)

続いて入力桁数のバリデーションを設定します。設定したら動作確認もしましょう。
対象ファイルは toy_app\app\models\micropost.rb です。

class Micropost < ApplicationRecord  
  validates :content, length: { maximum: 140 }  
end  

無事にバリデーションが設定できました。

UserとMicropostの連携

次に設定するのは、userとmicropostの関連付けです。RDBで言う結合相手のテーブル、もしくは外部キー……でいいのでしょうか?
1つ目の対象ファイルは toy_app\app\models\user.rb です。

class User < ApplicationRecord  
  has_many :microposts  
end  

2つ目の対象ファイルは toy_app\app\models\micropost.rb です。

class Micropost < ApplicationRecord  
  belongs_to :user  
  validates :content, length: { maximum: 140 }  
end  

この後、チュートリアルでは rails console を用いた説明が行われていますが、それは各自でご確認ください。私も試してみましたが、チュートリアルの記述とバージョンが違うのか、SQL文も表示されたので理解の助けになりました。

関連付けが問題なくできていれば、その次にある演習1で以下のように表示できるようなので、一緒に確認しておきましょう。

途中、エラーに悩まされたりしましたが、無事に2章の終了までたどり着けました。
次回からは3章に入っていきます。

記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
アイマスP兼エンジニアの雑記。

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする