Railsアプリケーションを作ってみる。初歩編

Railsアプリケーションを作ってみる。初歩編のイメージ
こんにちは。最近「坂の上の雲」を読み始めた小川です。
休日が雨でしたので、読んでない本を読もうと思って部屋の本棚から引っ張りだしました。
なぜ坂の上の雲なのかはわかりませんが、気分的に、です。

– 秋山好古、秋山真之の兄弟と正岡子規の3人を主人公に、松山出身の彼らが明治という近代日本の勃興期を、いかに生きたかを描き、青春群像小説の面が強調されている。 – 出典 Wikipedia

物語はどんなものでも、時代背景や人物設定など、その世界観を受け入れるまでが退屈と感じるのですが、司馬小説は自然に引き込まれます。
私は単純で感じやすい性分なので、竜馬がゆくのラストでは完全に感情移入しきり、「やってやろう」という気になったので、今回もその感動が欲しくての選書かもしれません。
とにかくこの秋は、「多読の秋」にしようと思っています。

坂の上の雲

さて、坂の上の雲とは関係ありませんが、突然やってやろうという気になり、この間のRedmineに引き続き、Railsで何か動くものを作りたくて、Railsのウェルカムページを出すまでとscaffoldコマンド実行までをレポートします。

前回のRedmineの記事にも書きましたが、Ruby(on Rails)は既にインストール済です。
さらにPassenger(mod_rails)なる、Apache上でRailsアプリケーションを動作させるためのモジュールもインストールが済んでます。

今回使用したRailsのバージョンは4.0.0。
まずは、railsコマンドを使用して新しいアプリケーションを作成します。
今回はデフォルトのsqlite3ではなくmysqlを使用しますので、引数にデータベースを指定。

rails new dev_apps -d mysql

dev_appsディレクトリが出現します。

bundle install

ここであれこれ足りないとか言われるので、必要なモジュールをインストールしたり、Gemfileをコメントアウト/インしたりします。今回は以下の行をコメント合うとしました。

#gem 'coffee-rails', '~> 4.0.0'

それからconfig/database.ymlも編集しなければ。
データベースに関する情報を書きます。
どうやら開発用、テスト用、本番用と分けて記述できるようですが、今回は開発用なので、development:に記述します。

config/database.yml
development:
  adapter: mysql2
  encoding: utf8
  host: db.example.com    #DBのホスト名
  database: dev_apps        #DB名
  pool: 5
  username: user       #DBユーザー
  password: password #DBパスワード

あとはバーチャルホストに設定を追加するだけ。
Passengerの設定は、httpd.conf内に記述しています。
各々環境に合わせて追記してください。

httpd.conf
LoadModule passenger_module /foo/bar/ruby/gems/1.9.1/gems/passenger-4.0.20/buildout/apache2/mod_passenger.so
PassengerRoot /foo/bar/ruby/gems/1.9.1/gems/passenger-4.0.20
PassengerDefaultRuby /foo/bar/ruby/RailsEnv development

そしてバーチャルホストの設定ファイルを新規に作成します。
DocumentRootには、さきほど作成したRailsアプリケーションディレクトリ内のpublicを参照します。
そしてブラウザーを通してRailsのウェルカムページが表示されているのが確認できます。

rails_welcome_page

Railsに興味を持って久しいのですが、なぜかscaffoldコマンドだけは耳に残っていたので、今回はscaffoldコマンドだけ試します。

ちなみにscaffoldという耳障りのいい言葉の意味を調べてみました。


1【可算名詞】
a(建築現場などの)足場.
b(ビルの窓をふく時に使うような)吊り足場.
2 a【可算名詞】 絞首台,断頭台.
  b[the scaffold] (絞首・断頭による)死刑.
3【可算名詞】 (野外の)組み立て舞台[ステージ,スタンド].

なんと残酷なコマンドなのでしょう。
1の意味で使用されているようですが、余計なことを調べてしまったために2のイメージが頭にこびりついて離れません。
一度頭に残るとそれ以外考えられない単純で感じやすい性分ですので、(アホという)
scaffold実行のたび、ボタンを押す執行人のような気持ちになるでしょう。笑
でも本格的なアプリケーションを開発するとscaffoldしないとのことです。(そりゃそうだ)

さて、押します。

rails generate scaffold users first_name:string last_name:string

そして反映。
rake db:migrate


なんと便利なのでしょう。
Usersというテーブルが作られ、CRUD画面まで作られています。

rails_scaffold

Web制作の現場では、新しい技術に触れるという機会がなかなかありませんので、これを機に楽しみながらRailsアプリケーションを作ってみたいと思います。