2011/06/18

さくらのVPSにインストールしたRails3を使ってチュートリアルをしてみます。



さくらのVPSにインストールしたRails3を使ってチュートリアルをしてみます。「Ruby on Rails入門」というサイトの内容を試してみます。但し、コマンドは、Rails3以前のものなので、コマンドの部分は読み替えていきます。

Ruby on Rails入門
http://www.rubylife.jp/rails/


「コントローラとアクションの作成」「ビューの作成」「アプリケーションへのアクセス」を確認します。mainというコントローラーを作成し、2つのビューを作成します。
$ ./script/rails g controller main
$ vi hello.html.erb
$ vi bye.html.erb

WEBrickサーバを起動します。
$ ./script/rails s

「Routing Error」が表示されました。routes.rb にある最下部の一行のコメントアウトを外すと解決しました。
# match ':controller(/:action(/:id(.:format)))'
下記に変更
match ':controller(/:action(/:id(.:format)))'

次に「scaffoldジェネレータの利用」を試します。

scaffoldジェネレータの利用
http://www.rubylife.jp/rails/scaffold/

MySQLを使用したアプリケーションを作成します。
$ rails new customer -d mysql

MySQLのデータベースを用意します。
$ mysql -u root
mysql> create database railsdb;
mysql> grant all on railsdb.* to foo@localhost identified by 'somepassword';

WEBrickサーバを起動すると、エラーが表示されます。
$ ./script/rails s
Could not find gem 'mysql2 (>= 0, runtime)' in any of the gem sources listed in your Gemfile.

mysql-develが入っていなかったのが原因らしいのでyumで入れます。
$ sudo yum -y install mysql-devel

依存関係をもったプログラムを一気にインストールします。
$ sudo bundle install
Fetching source index for http://rubygems.org/
Installing rake (0.9.2)
Using abstract (1.0.0)
Using activesupport (3.0.7)
Using builder (2.1.2)
Using i18n (0.5.0)
Using activemodel (3.0.7)
Using erubis (2.6.6)
Using rack (1.2.3)
Using rack-mount (0.6.14)
Using rack-test (0.5.7)
Installing tzinfo (0.3.28)
Using actionpack (3.0.7)
Using mime-types (1.16)
Using polyglot (0.3.1)
Using treetop (1.4.9)
Using mail (2.2.19)
Using actionmailer (3.0.7)
Using arel (2.0.10)
Using activerecord (3.0.7)
Using activeresource (3.0.7)
Using bundler (1.0.14)
Installing mysql2 (0.3.6) with native extensions
Using thor (0.14.6)
Using railties (3.0.7)
Using rails (3.0.7)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

WEBrickサーバを再度起動します。無事起動しましたが、「About your application’s environment」のクリックで エラーが発生します。
RuntimeError (Please install the mysql2 adapter: `
gem install activerecord-mysql2-adapter` 
(no such file to load -- active_record/connection_adapters/mysql2_adapter)):

エラーメッセージに従い、activerecord-mysql2-adapter をインストールしますが、エラーになります。
ERROR:  Could not find a valid gem 'activerecord-mysql2-adapter' (>= 0) in any repository

mysql2アダプタの0.3系のバージョンは、Rails 3.1向けのようです。Rails 3.0で使うには、mysql2の0.2系を指定する必要があるとのこと。Gemfileのgem 'mysql2'の行を以下のように変更します。
gem 'mysql2', '< 0.3'
再度、bundle installします。
$ sudo bundle install

WEBrickサーバを再度起動、起動確認、表示OK、「About your application’s environment」も正常に表示されました。

「scaffoldジェネレータの利用」については、次回に。

0 件のコメント:

人気の投稿 (過去 30 日間)