Open kurodakazumichi opened 6 years ago
基本的なCRUDモデルに必要な処理、テスト、DB設定プログラムなどが自動生成される。
railsアプリケーションの直下で以下のコマンドを実行する
rails db:migrate
このコマンドを実行すると
rails_app/db/migrate
にあるDBのテーブルを構築するプログラムが実行される。
環境構築の最初に実行する事でアプリケーションで必要なDBを構築できる。
rails db:migrate:reset
一度テーブルを破棄し、再構築するコマンド。 ただしvagrantの共有フォルダにDBファイルがある場合はエラーが発生する。 その場合は一度DBのファイルを削除して通常通りdb:migrateすればいい。
モデルファイルが自動生成される。
# rails g モデル名 フィールド名1:フィールドの型 フィールド名2:フィールドの型
rails g Hoge title:string body:text
rails g model Child body:string hoge:references
最後のhoge:references
こうするとChildにはhoge_id
というカラムが生成され、外部キーが設定される。
rails consoleモードにするコマンド
rails console
#もしくは
rails c
この状態になるとrailsで動作するコードを実行できるようになる。
rails db
sqlite3を使っている場合しか試していないが このコマンドを打つとDB操作モードになりSQL等が実行できる。
DBに初期値を登録するために使うコマンド。
予めデータを作成するための処理を作っておく必要がある。
データ作成処理はdb/seeds.rb
に書く。
seeds.rb
5.times do |i|
Post.create(title: "title #{i}", body: "body #{i}")
end
console
rails db:seed
とすればhogesに5件のレコードが登録される。
コントローラーファイル、及び関連ファイルが作成される。
# rails g controller コントローラー名(複数形)
rails g controller Hoges
コントローラー名は単数形
ルート(アクセス可能なURL)の一覧が表示される。
DBに対する変更を行う場合はマイグレーションファイルを作成して行う。 クラス名は任意らしいが「行う処理+対象のテーブル名」とするのがよさげ。
例えばTechnologyというテーブルにdescriptionを追加するなら
rails g migration AddBirthdayTechnologies
とするとyyyymmdd_add_birthday_technologies.rb
が出来上がる。
class AddBirthdayTechnologies < ActiveRecord::Migration[5.1]
def change
end
end
もっと規則に従ったコマンドにすれば、マイグレーションのコードも自動生成される。
rails g migration ClassName ColumnName:DataType ...
AddColumnToTableName RemoveColumnFromTableName とか
rails g migration AddBirthdayToTechnologies birthday:date
とするとこんなものが出来上がる。
class AddBirthdayToTechnologies < ActiveRecord::Migration[5.1]
def change
add_column :technologies, :birthday, :date
end
end
scaffoldコマンド
railsアプリケーションの直下で以下のコマンドを実行する
もしくは
generateは省略して
g
と記載できる。