LoginSignup
2
0

More than 3 years have passed since last update.

簡単なアプリケーションを作ってみる(scaffoldとは、そしてUserをつくりたい)

Last updated at Posted at 2020-02-07

railsでは簡単にこんなことができる!

「Ruby on RailsとはRubyのフレームワークだ」と聞きますね!
rails を使うとWebアプリケーションがつくれますが、rails を勉強していて、 スクリーンショット 2020-02-07 18.34.31.png

本当に簡単に(魔法のように)、簡単な(簡易的な)アプリケーションを作る方法を知りました。
それが、scaffoldジェネレータを利用した方法です。紹介したいと思います〜。

scaffoldとは?

rails のアプリケーションでは、MVC(モデル、ビュー、コントローラー)を使って一つ一つ作成していき、ルーティングを設定しますが、そういうのをまとめて自動的に作ってくれるのがscaffoldジェネレータなのですね。

どんなときに使う?メリット・デメリットは?

(私の中では)scaffoldジェネレータを使用するときは、このような時があげられます。

  • アプリケーションをすばやく作りたい!
  • アプリケーションを手っ取り早く作りたい!
  • アプリケーションをかーんたんに作りたい!
  • アプリケーションを試しに作りたい!

メリットはこちらです。

  • 技術力なくてもやってみたら作れる
  • アプリケーションの雛形となる部分を簡単に作成できる
  • 開発が効率的に進む
  • なので、とても便利!
  • rails の大まかな概要がある程度わかる

もちろんデメリットもあります。

  • あやふやな知識のままでもサービスを作れてしまう
  • なので、rails の深い理解が困難である

こんなのを作ってみる

ユーザーを作成し、投稿ができます。
ユーザーや投稿を、編集・削除できます。

アプリケーションの骨組みを作成する

ターミナルでお好きなディレクトリに、下のコマンドを実行し、アプリケーションの骨組みを作成します。

$ rails new greeting_app
$ cd greeting_app

ユーザーモデルを作る

アプリケーションのユーザーで使うモデルを作成します。
文字列にはstringを、整数にはintegerという型を使います!
integer型のidは、重複のないキーを割り当てられます。

カラム名
id integer
name string
email string

Usersリソースをscaffoldジェネレータで生成します。
scaffoldの引数には、リソース名を単数形にしたもの(user)にします。
データモデルの属性も一緒に追加します。
(idカラムはrailsによって自動的に自動的に追加されます!)

$ rails generate scaffold User name:string email:string

マイグレーションという1つのファイルが生成されました!(↓)
エディタで見ると、ファイル名の先頭には生成された時間が追加されているのがわかります。
そして、さっきのコマンドではオプションを追加していないt.timestampsが作られています。
これは、created_atupdated_atという2つのカラムを作成してくれます。

db/migrate/[timestamp]_create_users.rb
class CreateUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :users do |t|
      t.string :name
      t.string :email

      t.timestamps
    end
  end
end

次のコマンドで、データベースにテーブルを作ります。

$ rails db:migrate

ブラウザで見る

生成されたページをブラウザで見てみましょう!
別のターミナルでgreeting_appに移動し、ローカルサーバーを立ち上げます。

$ rails server

http://localhost:3000/ をブラウザで開きます。
このような画面になっているとOKですね!
🗣「わーい! Railsを使用しています!」って書いてます。
わーい

http://localhost:3000/users を開いて、ユーザー一覧を見てみましょう!
/usersをつけると、insexアクション(ユーザー一覧)が呼び出されます。

スクリーンショット 2020-02-07 19.21.07.png

まだユーザーは1人もつくられていないので、「New User」リンクを押し、「Name」「Email」を入力、「Create User」ボタンを押して作ってみましょう!作れました!
スクリーンショット 2020-02-07 18.34.31.png

※ちなみに、ユーザーをCreateした直後に画面上にでる緑の文字「User was successfully created.」はflashという機能を使っています!
スクリーンショット 2020-02-07 18.34.56.png

画面にリンクが色々あるのでなんとなく分かると思いますが、この時点でユーザーの編集も削除もできますね!

ユーザーに関するページ

ページごとにURLも作られています。

URL    アクション ページ内容
/users index すべてのユーザーを一覧するページ
/users/1 show idが1のユーザーを表示するページ
/users/new new 新規ユーザーを作成するページ
/users/1/edit edit id=1のユーザーを編集するページ

URLとアクションの組み合わせを変更する

今のままでは、/にアクセスしたときに「わーい! Railsを使用しています!」のままになっていて、/usersまで入力しないとアプリケーションを開けません。
そこで、ルーティングを変更してみましょう!(3行目を追加します。)

config/routes.rb
Rails.application.routes.draw do
  resources :users
  root 'users#index'
end

これで、「わーい! Railsを使用しています!」の代わりに、indexアクションが呼び出されることになります!

※scaffoldで生成されたユーザーコントローラー内のアクションは、app/controllers/users_controller.rbで確認することができます。ここを深く見てみるとどういうふうにページを表示しているかが見れて面白いですね〜。

つづくよ

ポストモデルもscaffoldジェネレータを利用して作っていきたいのですが、長くなってしまったので、次か、次の次かの記事に書こうと思います!てげっててすみません。
↓こちら参考にしました🎒
scaffoldを利用した開発(1)
scaffoldを利用した開発(2)
rails tutorial 「魔法のように」というのは、rails tutorial で使われていた言葉でした!

わーいわーいわーいわーいわーい

わーい

2
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
2
0