Rails3 でWEBアプリを作ってみる

3分動画でマスターする初心者向けプログラミング学習サイト - ドットインストールRubyの基礎 (全32回) - ドットインストール をはじめてみたんですが、ちょっと内容がモノ足りないというか、テンポ良く進みすぎてあんまり深く理解できてなかったので、本買って勉強することにしました。

Ruby on Rails 3 アプリケーションプログラミング

Ruby on Rails 3 アプリケーションプログラミング

今後は、これをベースに進めていこうと思います。ただ、3分動画でマスターする初心者向けプログラミング学習サイト - ドットインストール も、短時間で要点をつかむのには最適なので、先にこっちで動画を見て、本読んで、またもう一回動画で確認みたいな使い方がよいかなーとか思ってます。

必要な知識

環境

前回、RVM (Ruby Version Manager) で Ruby の複数のバージョンを一つのマシンで使う - tatsuyaoiw.hatenablog.com でセットアップしたバージョン。

$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]
$ gem -v
1.8.24
$ rails -v
Rails 3.2.6
$ sqlite3
SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

手順

まずは Rails アプリの作成。

$ mkdir ~/railsprojects; cd ~/railsprojects
$ rails new railbook

次に Web サーバを起動します。Rails では WEBric というシンプルな HTTP サーバが標準で提供されているので、これを起動します。

$ cd railbook
$ rails server

で、起動すると早速エラーがでました。

/home/tatsuyaoiw/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
	from /home/tatsuyaoiw/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
	from /home/tatsuyaoiw/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.4.0/lib/execjs.rb:4:in `<top (required)>'
	from /home/tatsuyaoiw/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
	from /home/tatsuyaoiw/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>'
	from /home/tatsuyaoiw/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require'

...

ググってみたところ、

で therubyracer という JavaScript ランタイムを使うといいよってことらしいので、Gemfile の中の therubyracer の行のコメントを外し、bundle install でインストール。

$ vim Gemfile
  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  gem 'therubyracer', :platforms => :ruby
$ bundle install
$ rails server

...

Using sqlite3 (1.3.6) 
Installing therubyracer (0.10.1) with native extensions 
Using uglifier (1.2.6) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

therubyracer が入ったら、再度 WEBric を起動。

$ rails server

hostname:3000 にブラウザからアクセスして確認。

f:id:tatsuyaoiw:20120727090315p:plain