学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Rails導入編 | カート機能の実装 | 05 | scaffoldの生成

↓↓クリックして頂けると励みになります。




04 | Railsの構成】 << 【ホーム】 >> 【06 | Bootstrapの導入






サンプルの商品管理アプリケーションを作成しながらRailsの機能を解説していきます。


まずは商品を格納するテーブルを作成します。
テーブルの名前は必ず複数形にするのがルールです。
この後実際にRubyでコードを書いていくモデルクラスというものが登場しますが、そのモデルクラスの名前は単数形で最初の文字は大文字というルールがあります。
このようにルール通り名前をつけておくと、モデルクラスでわざわざテーブル名を指定しなくてもRailsが自動的にテーブルを探し出すことが出来ます。


では商品のテーブルを作成してみましょう。
「goods」という単語を使い、モデル名は「good」となります。


作成するフィールドの内容は次のようにします。

  • goods_id: 商品のID用。bigint型
  • title: 商品の名前。string型
  • description: 商品の説明用。text型
  • image_url: 商品の画像URL用。string 型
  • price: 商品の価格。bigint型
  • date: 商品の登録日。datetime型
  • maker: 商品の製造業者。string型
  • category: 商品のカテゴリー分類用。string型


    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の導入






    ↓↓クリックして頂けると励みになります。