概要
Railsは高速でアプリケーションを作れるので、教材などのコードをコピペしとけば「なんかできちゃったお」ってなることが多い。 大学1年の頃はコレが原因で挫折したので、今回は簡単なアプリケーションを作りながら丁寧に理解していきたい。 幸い学生で、コロナの影響で時間もたっぷりあるので、今しかできないことをやる。 アプリケーションを作る上で必要なコマンドをまとめるというよりは、「このメソッドはなんのメソッドで、何をしているのか」という点に着目する。 とにかく自分の「なんか動いた。。」を徹底的に回避するための備忘録。「お前、ちょっとやりすぎだぞ。初心者ならもっと効率上げろ。」
だったり、
「お前、ここの理解浅い。出直してこい。」
などあれば、コメントいただけると幸いです!!
https://diveintocode.jp/blogs/Technology/migration
この記事にとても助けられた。。。
scaffoldでcontrollerとmodelを生成。migration fileを覗く
アプリケーション、コントローラ、モデルの作成$ rails new Myblog # DBやrailsのバージョンもここで指定可能
$ rails g scaffold Message title:string message:string
一旦マイグレーションファイルを覗く
db/migrate/20200418172927_create_messages.rb
class CreateMessages < ActiveRecord::Migration[5.2]
def change
create_table :messages do |t| # ここテーブル名
# こいつらカラム名↓
t.string :title
t.string :message
t.timestamps
end
end
end
このブロック処理でデータベースのテーブルを作成するもの。
例えば、このマイグレーションファイルは以下のようなDBを作る。
SQL叩かなくてもRubyでこんなことできる。ActiveRecordはすごい。
ID | title | message | created_at | updated_at |
---|---|---|---|---|
0 | あ、こんちは | サイゼのイタリアンプリン | 生成日時 | 更新日時 |
1 | スマブラ | ウルフの空後は着地空きほぼ無いのでそのまま空N打てばごまかせる | 生成日時 | 更新日時 |
DBの生成
とりあえずDB作成。
rails db:migrate
schema.rbを覗く。
db/scema.rb
ActiveRecord::Schema.define(version: 2020_04_18_172927) do
create_table "messages", force: :cascade do |t|
t.string "title"
t.string "message"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
end
おー、できた。
ちなみにコレは見る専門で、マイグレーションファイルのどこまでが更新されたかを、上のversionで確認できる。
チーム開発の時に便利。
コンソールについて
コンソール見る時pryの方が便利らしいのでインストールしとく。Gemfile
group :development, :test do
#(中略)
gem 'pry-rails'
gem 'pry-doc'
gem 'pry-stack_explorer'
gem 'pry-byebug'
end