Rails備忘録
新規Railsアプリケーションを作ったり、開発を進める時に定常的に行っている
作業をまとめます。随時更新していきます。
generateコマンドで生成するファイルを減らす
「bin/rails generate」コマンドが生成するファイルを減らします。
/config/initializers/generators.rb
Rails.application.config.generators do |g|
g.helper false # ヘルパーを作成しない
g.assets false # CSS, JavaScript ファイルを生成しない
g.skip_routes true # config/routes.rb を変更しない
g.test_framework false # テストスクリプトを生成しない
end
コントローラーの作成
# コントローラーを作成する
$ bin/rails generate controller top index
# 誤って生成したコントローラーを削除する
$ bin/rails destroy controller top index
アクション名を指定せずに生成し、後からメソッドを記述したりviewディレクトリに
index.html.erbファイルを作成する事もできます。
$ bin/rails generate controller top
bin/を付けずにrailsコマンドを使うと、 RubyGemsでインストールしたrailsコマンドが
動きます。bin/railsとすると、binディレクトリのスクリプトが使われます。
「generate」は「g」と省略できます。
ルーティングの設定
作成したコントローラーをURLのパスと紐づけるためにルーティングを設定します。
/config/routes.rb
Rails.application.routes.draw do
root "top#index"
end
データベースの作成
# データベースを作成
$ bin/rails db:create
# 本番用のデータベースを作成
$ bin/rails db:create RAILS_ENV=production
# データベースを削除
$ bin/rails db:drop
タイムゾーンの設定
モデルを作成したりマイグレーションを行う前に、
Railsアプリケーションのタイムゾーンを設定します。
config/application.rb
module Hogehoge
class Application < Rails::Application
...
config.time_zone = "Tokyo"
end
end
モデルの作成とマイグレーション
# Memberモデルの作成
$ bin/rails g model member
# マイグレーションスクリプトを作成後、さらにカラムを追加する場合
$ bin/rails g migration AlterMembers
# バーションを指定する
$ bin/rails db:migrate VERSION=xxxxxxxx
# 現在のマイグレーションのバージョンを確認
$ bin/rails db:migrate:status
# 直前に行われたマイグレーションを1つ取り消す
$ bin/rails db:rollback
# 一度に複数のマイグレーションをロールバックする
$ bin/rails db:rollback STEP=3
# マイグレーションを最初からやり直す
$ bin/rails db:migrate:reset
リリース後のマイグレーションは慎重に行いましょう。
マイグレーション用メソッド
メソッド | 引数 | 機能 |
---|---|---|
add_column | (テーブル名,カラム名,型,オプション) | カラムの追加 |
rename_column | (テーブル名,カラム名,新しい名前) | カラム名の変更 |
change_column | (テーブル名,カラム名,型,オプション) | カラム型の変更 |
remove_column | (テーブル名,カラム名) | カラムの削除 |