0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【超初心者的】Railsアプリ作成 Part.1 モデルの作成

Last updated at Posted at 2020-08-05

次は土台づくりです。このパートは何回かに記事を分けます。

まずはデータベースにデータを登録できるようにします。なお、一度にいくつも覚えられないのでバリデーションは考慮していません。

##モデルの作成

MVCのMです。
モデル名は単数形にします。テーブルなどの名前は自動的に複数形で作成されます。
(ramenみたいな日本語は複数形にならなかった。。。)

ここではモデル名をmenuにしています。

ターミナル
% bin/rails g model menu

カラムも最初に作成したい時

ターミナル
% bin/rails g model menu title:string body:text

##☆モデルの削除

名前を間違ってしまった場合に

ターミナル
% bin/rails destroy model menu

##テーブルの作成

自動的にファイルが作成されるので編集。カラムはname, price, descriptionの3つ。

db/migrate/20200702105514_create_menus.rb
class CreateMenus < ActiveRecord::Migration[6.0]
  def change
    create_table :XXXXX do |t|
      t.string :name
      t.integer :price
      t.text :description

##マイグレーション

ターミナル
% bin/rails db:migrate

##ストロングパラメータ無効化

勉強不足で説明はできないのですが、これが有効だとDBへのデータ登録がうまくいかないことがあるので、無効にします。記載後はたしかサーバ再起動が必要だったはずです。

28行目あたり(タイムゾーン設定の下に記載しました)

config/application.rb
    config.time_zone = "Tokyo"
    config.action_controller.permit_all_parameters = true

##テスト:データ登録

コンソールでデータ登録をしてみます。最初にrails consoleを起動します。データ登録のコマンドはProgateでやった気がします。

ターミナル
% bin/rails c
ターミナル
irb(main):001:0> menu = Menu.new(name: "ラーメン", price: 600, description: "おいしい")
irb(main):002:0> menu
=> #<Menu id: 1, name: "ラーメン", price: 600, description: "おいしい", created_at: "2020-07-12 00:09:04", updated_at: "2020-07-12 03:25:51">

入力した内容が表示されたら成功です。saveしてrails consoleを終了します。

ターミナル
irb(main):003:0> menu.save
irb(main):004:0> quit

【超初心者的】Railsアプリ作成 Part.2 コントローラとルーティングの設定 に続く

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?