SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
サンプルコードで学ぶRuby on Rails 5実践入門

Rails 5の環境構築とscaffoldで基本構成を体感

サンプルコードで学ぶRuby on Rails 5実践入門 第2回

  • X ポスト
  • このエントリーをはてなブックマークに追加

ダウンロード サンプルファイル (3.4 KB)

 前回は、Rails 5の新機能や追加機能を紹介し開発環境構築を行いました。第2回となる今回は、Rails 5のプロジェクト作成、scaffoldを利用してRails 5の基本構成を体感していきます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

Rails 5の環境構築(続き)

 前回はRails 5のインストールまでを行いました。

 今回はRailsプロジェクトの作成とデータベース作成、pumaサーバーの起動を行います。

Railsプロジェクトの作成

 Railsプロジェクトを作成します。

 RailsのデフォルトのデータベースはSQLiteですが、本連載ではデータベースにPostgreSQLを使用するため、-d postgresオプションを指定します。

$ bundle exec rails new . -d postgresql
       exist
      create  README.md
      create  Rakefile
      create  config.ru
      create  .gitignore
    conflict  Gemfile
Overwrite /Users/chikuba/sandbox/rails/rails5_sample/Gemfile? (enter "h" for help) [Ynaqdh]⇒ (「Y」と入力)
       force  Gemfile
      create  app
      create  app/assets/config/manifest.js
                        …(中略)…
Installing sass-rails 5.0.6
Bundle complete! 15 Gemfile dependencies, 63 gems now installed.
Bundled gems are installed into ./vendor/bundle.
         run  bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted

 rails newコマンドではGemfileを生成しますが、既にbundle initによって生成されたGemfileが存在しているため、上書きするか聞いてきます。ここでは上書きするため、Yを入力します。

 このように、一通りRailsで必要となるファイル群が生成された後、デフォルトでは自動でbundle installが実行されます。これはGemfileがrails newコマンドによって上書きされ、追加で定義されたgemパッケージのインストールが必要なためです。bundle installを手動で行いたい場合は--skip-bundleオプションを指定します。

 実際にrails newコマンドで再生成されたGemfileの中身は、以下の通りです。

リスト1 Gemfile
source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.0.0', '>= 5.0.0.1'
# Use postgresql as the database for Active Record
gem 'pg', '~> 0.18'
# Use Puma as the app server
gem 'puma', '~> 3.0'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
…(中略)…
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

 -d postgresqlオプションを指定したので、Gemfileの通り、データベースアダプターのgemがpgとなっています。このオプションがないとデフォルトではgem sqlite3となります。

データベース接続の設定

 Railsアプリケーションが使用するデータベースの設定を確認します。データベースの設定ファイルはconfig/databases.ymlです。

リスト2 config/databases.yml
default: &default
  adapter: postgresql
  encoding: unicode
  …中略…
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>

development:
  <<: *default
  database: rails5_sample_development
  …中略…
test:
  <<: *default
  database: rails5_sample_test
  …中略…
production:
  <<: *default
  database: rails5_sample_production
  username: rails5_sample
  password: <%= ENV['RAILS5_SAMPLE_DATABASE_PASSWORD'] %>

 このように、デフォルトでは開発環境用(development)、テスト環境用(test)、本番環境用(production)のデータベース名の設定が入っています。データベースのホストはlocalhost、ポート番号は5432が、それぞれデフォルト値です。

 データベース名はプロジェクト名_環境と、環境のポストフィックスが付いていることが分かります。

 config/databases.ymlのencodingがデフォルトでunicodeになっていますので、これをutf8に変更します。

リスト3 config/databases.yml
default: &default
  adapter: postgresql
  encoding: utf8
  …中略…

 なお、ローカルPCへのPostgreSQLインストール時、特にオプション等を指定していなければログインユーザーでパスワードなしのデータベース作成権限が付与されているはずなので、config/databases.ymlのusername、passwordは指定なしでも問題ありません。

 ひとまずは開発環境/テスト環境用のデータベースをRails経由で作成しましょう。以下のコマンドを実行します。

$ bundle exec rails db:create
Created database 'rails5_sample_development'
Created database 'rails5_sample_test'

 以前はrakeコマンドで実行していましたが、Rails 5ではrailsコマンドでデータベースを作成することができるようになりました。また、以前はデータベース作成されたメッセージが出力されませんでしたが、メッセージが出力されるようになっています。

Railsアプリケーションの起動

 いよいよRailsアプリケーションの起動です。

 rails sコマンドでRailsアプリケーションを起動してみましょう。

$ bundle exec rails s
=> Booting Puma
=> Rails 5.0.0.1 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.0 (ruby 2.3.1-p112), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

 無事にWebサーバーのPumaが起動しました。

 前回触れたように、RailsのデフォルトのWebサーバーがWEBrickからPumaに変更されています。

 Webサーバーを起動したのでWebブラウザで「http://localhost:3000」にアクセスします。以下のような画面が出力されれば無事、Rails 5の開発環境が整いました。

図1 Railsのスタートページ
図1 Railsのスタートページ

 Railsアプリケーションを起動したコンソールに戻ると、以下のようなログが出力されていることが確認できます。

Started GET "/" for ::1 at 2016-09-04 02:36:08 +0900
Processing by Rails::WelcomeController#index as HTML
  Parameters: {"internal"=>true}
  Rendering vendor/bundle/ruby/2.3.0/gems/railties-5.0.0.1/lib/rails/templates/rails/welcome/index.html.erb
  Rendered vendor/bundle/ruby/2.3.0/gems/railties-5.0.0.1/lib/rails/templates/rails/welcome/index.html.erb (5.2ms)
Completed 200 OK in 30ms (Views: 14.3ms | ActiveRecord: 0.0ms)

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
scaffoldを利用したRailsアプリケーションの基本動作確認

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
サンプルコードで学ぶRuby on Rails 5実践入門連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 竹馬 力(チクバ ツトム)

<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9806 2016/12/06 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  1. 6
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  2. 7
    2024年は開発者にとってどんな年だったのか? CodeZineの人気ニュースランキングから振り返る
  3. 8
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  4. 9
    VSCodeをUML図やフローチャート作成に使ってみよう
  5. 10
    中学生の将来つきたい職業、男子では「エンジニア・プログラマー」が1位に

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  6. 6
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  7. 7
    2024年は開発者にとってどんな年だったのか? CodeZineの人気ニュースランキングから振り返る
  8. 8
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  9. 9
    VSCodeをUML図やフローチャート作成に使ってみよう
  10. 10
    中学生の将来つきたい職業、男子では「エンジニア・プログラマー」が1位に
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  8. 8
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  9. 9
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  10. 10
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  1. 6
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  2. 7
    2024年は開発者にとってどんな年だったのか? CodeZineの人気ニュースランキングから振り返る
  3. 8
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  4. 9
    VSCodeをUML図やフローチャート作成に使ってみよう
  5. 10
    中学生の将来つきたい職業、男子では「エンジニア・プログラマー」が1位に

アクセスランキング

  1. 1
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  2. 2
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  3. 3
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  6. 6
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  7. 7
    2024年は開発者にとってどんな年だったのか? CodeZineの人気ニュースランキングから振り返る
  8. 8
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  9. 9
    VSCodeをUML図やフローチャート作成に使ってみよう
  10. 10
    中学生の将来つきたい職業、男子では「エンジニア・プログラマー」が1位に
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  4. 4
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  5. 5
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  6. 6
    Google、社内AIエージェント「Google Agentspace」発表
  7. 7
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  8. 8
    JavaScriptのWebフレームワーク、「Astro 5.1」リリース
  9. 9
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  10. 10
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!