これまでのあらすじ
アストラギウス銀河を二分するギルガメスとバララントの陣営は互いに軍を形成し、もはや開戦の理由など誰もわからなくなった銀河規模の戦争を100年間継続していた。その“百年戦争”の末期、ギルガメス軍の一兵士だった主人公「キリコ・キュービィー」は、味方の基地を強襲するという不可解な作戦に参加させられる。作戦中、キリコは「素体」と呼ばれるギルガメス軍最高機密を目にしたため軍から追われる身となり、町から町へ、星から星へと幾多の「戦場」を放浪する。その逃走と戦いの中で、陰謀の闇を突きとめ、やがては自身の出生に関わる更なる謎の核心に迫っていく。
はい、ということでRailsチュートリアル第二弾やっていきます。次回も同じあらすじ垂れ流したら怒られそうなので次回からはまじめなあらすじ考えておきます。どうでもいいけどアフィリンクにボトムズ貼りたかったけどあれ滅茶苦茶シリーズ多いんですよね。オススメはシンプルにTV版ですが全52話なんでまあそれ貼っても誰も購入しない未来しか見えない。ま、この記事ボトムズについて熱く語る記事でないので興味をもってしまった皆さんはレンタルするなりBOX買うなりなんなりしてください。
Toyアプリつくるよ
えーと、なんの話でしたっけ?そうそうRailsでした。今回からちゃんと中身をいじっていきます。
■ Scaffoldを使おう
Scaffoldってコマンド叩けば「Rails全体を高度なレベルで概観」できるらしいですよ。早速やっていきましょう。
# $ rails generate scaffold モデル名 カラム名:型
$ rails generate scaffold User name:string email:string
$ rails db:migrate
これだけでTodo系CRUDアプリ完成します。


演習系の話は色々いじってみようとかなんですけど、素のやつはバリデーションされてない感じがする。なに入力してもサクセース!!ってでるでFA。さて、雑に演習の解答したので中身をいじっていきます。その前にEditを押したときの動作を図示しろみたいな問題あったので雑に書いてみる。
多分、こう。図に書いてないけどモデルとのやりとりはfind
でID拾ってるとかだと思う。
■ Micropostをつくろう
ということで、scaffoldでの大まかな作り方が分かったので似たようなやつをもう一個作ります。
$ rails generate scaffold Micropost content:text user_id:integer
$ rails db:migrate
そんでこれも作っただけだとバリデーションできてないので以下のようにモデルに書き込みを加えて文字数制限とかユーザチェックとかするとのことです。
# app/models/user.rb class User < ApplicationRecord has_many :microposts end
# app/models/micropost.rb class Micropost < ApplicationRecord belongs_to :user validates :content, length: { maximum: 20 } end
これで「Content is too long (maximum is 20 characters)(コンテンツの中身が20文字以上だからダメ)」とか「User must exist(ユーザを設定しろ)」とかそんな感じで登録しようとすると怒られるようになります。ここまでRubyいじってない……。まあ、そういう感じの機能がさっくり作れるとのことです。よしとしましょう。