↓↓クリックして頂けると励みになります。
【04 | Railsの構成】 << 【ホーム】 >> 【06 | Bootstrapの導入】
サンプルの商品管理アプリケーションを作成しながらRailsの機能を解説していきます。
まずは商品を格納するテーブルを作成します。
テーブルの名前は必ず複数形にするのがルールです。
この後実際にRubyでコードを書いていくモデルクラスというものが登場しますが、そのモデルクラスの名前は単数形で最初の文字は大文字というルールがあります。
このようにルール通り名前をつけておくと、モデルクラスでわざわざテーブル名を指定しなくてもRailsが自動的にテーブルを探し出すことが出来ます。
では商品のテーブルを作成してみましょう。
「goods」という単語を使い、モデル名は「good」となります。
作成するフィールドの内容は次のようにします。
Railsでは「scaffold」を使ってテーブルを生成していきます。
rails generate scaffold モデル名(単数形) フィールド名1:データ型 フィールド名2:データ型
では、ターミナルで以下のコマンドを入力して下さい。
コマンド
rails generate scaffold good goods_id:bigint title:string description:text image_url:string price:bigint date:datetime maker:string category:string
これでアプリケーションに必要なモデルやビューなどが作成されました。
~/Desktop/Rails7_1/SampleCart $ rails generate scaffold good goods_id:bigint title:string description:text image_url:string price:bigint date:datetime maker:string category:string invoke active_record create db/migrate/20240109073243_create_goods.rb create app/models/good.rb invoke test_unit create test/models/good_test.rb create test/fixtures/goods.yml invoke resource_route route resources :goods invoke scaffold_controller create app/controllers/goods_controller.rb invoke erb create app/views/goods create app/views/goods/index.html.erb create app/views/goods/edit.html.erb create app/views/goods/show.html.erb create app/views/goods/new.html.erb create app/views/goods/_form.html.erb create app/views/goods/_good.html.erb invoke resource_route invoke test_unit create test/controllers/goods_controller_test.rb create test/system/goods_test.rb invoke helper create app/helpers/goods_helper.rb invoke test_unit invoke jbuilder create app/views/goods/index.json.jbuilder create app/views/goods/show.json.jbuilder create app/views/goods/_good.json.jbuilder
「db」フォルダの「migrate」フォルダにある「create_goods.rb」ファイルを見てみます。
【20240109073243_create_goods.rb】
class CreateGoods < ActiveRecord::Migration[7.1] def change create_table :goods do |t| t.bigint :goods_id t.string :title t.text :description t.string :image_url t.bigint :price t.datetime :date t.string :maker t.string :category t.timestamps end end end
実際にこのファイルをデータベースに適用してみます。
ターミナルで以下のコマンドを入力して下さい。
Railsがまだ適用していないマイグレーションを探し出してデータベースに適用してくれます。
コマンド
rails db:migrate
~/Desktop/Rails7_1/SampleCart $ rails db:migrate == 20240109073243 CreateGoods: migrating ====================================== -- create_table(:goods) -> 0.0358s == 20240109073243 CreateGoods: migrated (0.0359s) =============================
実際にテーブルが出来ているかどうか見てみます。
Posticoで確認します。
Windowsの方はHeidiSQLで確認して下さい。
【04 | Railsの構成】 << 【ホーム】 >> 【06 | Bootstrapの導入】
↓↓クリックして頂けると励みになります。