Ruby on Rails「scaffold」でブログアプリを作成する方法

Ruby on Rails

Railsで簡単なブログアプリケーションを作成する方法を解説します。
Railsでは、「scaffold」を使うと簡単なブロクアプリが作ることができます。

Railsアプリケーションを作成しよう

Railsアプリケーションは別々のフォルダに作ると管理が面倒になります。

ディレクトリの準備

mkdir」コマンドで「my_rails_app」ディレクトリを作成します。

mkdir my_rails_apps

作成したディレクトリに「cd」コマンドで移動します。

cd my_rails_apps

アプリ作成

Railsのコマンドで新しいアプリを作成します。
「bundle install」をスキップするオプションをつけます。

rails new heroku-app --skip-bundle

実行結果

rails new heroku-app --skip-bundle
 create
 create README.md
〜中略〜
remove config/initializers/cors.rb
remove config/initializers/new_framework_defaults_5_1.rb

アプリケーションのディレクトリに「cd」コマンドで移動します。

cd heroku-app

「bundle install」コマンドを実行

「bundle install」コマンドを実行します。
パッケージ管理ツールGemがインストールされるようにオプションをつけます。
アプリ作成時にGemをインストールすると、アプリごとでGemを自動で切り替えてくれます。
インストールには、少し時間がかかるので待ちます。

bundle install --path vendor/bundle

コマンドを実行し、「Bundled gems are installed into ./vendor/bundle.」と表示されればOKです。

bundle install --path vendor/bundle
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
〜中略〜
Bundle complete! 16 Gemfile dependencies, 72 gems now installed.
Bundled gems are installed into ./vendor/bundle.

ブログアプリを作成する

Railsでは、「scaffold」を使うと簡単なブロクアプリが作ることができます。

scaffoldでブログアプリを作成

rails generate scaffold post title:string body:string

コマンド実行し、「create app/assets/stylesheets/scaffolds.scss」を表示されればOKです。

rails generate scaffold post title:string body:string
invoke active_record
create db/migrate/20170927084835_create_posts.rb
〜中略〜
invoke scss
create app/assets/stylesheets/scaffolds.scss

データベースを更新

「migrate」コマンドでデータベースを更新します。

bundle exec rake db:migrate

コマンドを実行結果

bundle exec rake db:migrate
== 20170927084835 CreatePosts: migrating ======================================
-- create_table(:posts)
-> 0.0006s
== 20170927084835 CreatePosts: migrated (0.0006s) =============================

ローカルで動作確認

動作確認してみましょう。

rails s

実行結果

rails s
=> Booting Puma
=> Rails 5.1.4 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.10.0 (ruby 2.4.1-p111), codename: Russell's Teapot
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

「アプリケーション”ruby”へのネットワーク受信接続を許可しますか?」と表示されたら、「許可」をクリックします。

「許可」をクリック

「許可」をクリック

ブラウザからアクセス

ブラウザを立ち上げ、「http://localhost:3000/posts」にアクセスします。
下記のように表示されれば成功です。

http___localhost_3000_posts

ブラウザから「http://localhost:3000/posts」にアクセス

ブロク投稿テスト

正常に動作するか、投稿テストを行います。
「New Post」をクリックしブログを作成してみます。

「New_Post」をクリック

「New_Post」をクリック

投稿するには、「title」「body」を入力して「Create Post」を押します。

ブロク投稿テスト

ブロク投稿テスト

以下画面になればアプリケーションは正常に動作しています。

ブロク投稿テスト

ブロク投稿テスト

最後に

Railsの「scaffold」を使って、簡単なブロクアプリが作る方法を解説しました。