メモの日々


2007年02月21日(水) [長年日記]

  • 朝の6時過ぎまで眠れなかった。仕方ないから起きるか、と思ったら眠ってしまったようだ。

[ruby] Ruby on Railsを使ってみた

次の仕事で使えるかもしれないので試してみた。15分でサクッと動かせるのかと思ったら、全然スムーズにいかない。

インストール

Fedora Core 5にインストールした。RPMにはなっていないようなので、RubyGemsを使ってインストールする。

$ sudo yum install rubygems

としてRubyGemsをインストールし、

$ sudo gem install rails

としてRailsをインストールした。依存するパッケージのインストールに存外に時間がかかった。Railsはバージョン1.2.2がインストールされたようだ。

アプリケーションの作成

とりあえず、WEB+DB PRESS vol.28に載っていたRuby on Rails入門の最初に書かれていることをやってみようと思った。

$ mkdir ~/rails
$ cd ~/rails
$ rails gagaga

とすると色々とファイルが作られた。これだけでブラウザからアクセスはできるとのこと。

$ cd gagaga/script
$ ./server

でウェブサーバを起動しブラウザでポート3000にアクセスするとWelcome画面が表示された。

データベースの作成

ここでつまずいた。config/database.ymlを編集せよとのことなので開いてみたが、書かれているのはmysqlの設定だけ。SQLiteを使いたいのだけれど、どう書けばよいのかわからない。勘で修正して先に進んでみたが、結局うまく動かなかった。

検索するとまちゅダイアリー

-d オプションでデータベース (sqlite3) を指定している。

という記述を見つけた。むむ、そうなのか。

アプリケーションの作成からやり直す。

$ cd ~/rails
$ rails -d sqlite3 uma

これでconfig/database.ymlはSQLite用の設定になった。特に編集すべき所はなさそうなので、続いてsqlite3コマンドを使って db/development.sqlite3 ファイルにusersテーブルを作った。

アプリケーションのscaffoldを生成

次はgenerateコマンドを実行せよとのこと。

$ cd uma
$ script/generate scaffold user

を実行する。が、

      exists  app/controllers/
      exists  app/helpers/
      create  app/views/users
      exists  app/views/layouts/
      exists  test/functional/
  dependency  model
      exists    app/models/
      exists    test/unit/
      exists    test/fixtures/
      create    app/models/user.rb
      create    test/unit/user_test.rb
      create    test/fixtures/users.yml
Couldn't find 'user' generator

とエラーになってしまう。謎のエラーで困ったが、同様のエラーで困っている人へのアドバイスを読んでsqlite3-rubyパッケージがインストールされていないのが原因だと分かった。

気を取り直してsqlite3-rubyをインストール。なにやらSWIGが無いとうまく動かないという情報も得たので、

$ sudo yum install swig
$ sudo gem install sqlite3-ruby

を実行した(Fedoraにはruby-sqlite3というRPMファイルが用意されていたがこれは使わずRubyGemsからインストールした)。

これで再度 script/generate コマンドを実行すると今度はエラーなく完了。

ブラウザからアクセス

これでブラウザからusersテーブルを更新できるようになっているとのことなので http://hostname:3000/users/ のようにしてアクセスしてみたが

`/users/' not found.

とエラーになってしまう。

これはウェブサーバの起動方法を間違えていたのが原因。上に書いたようにscriptディレクトリの中でserverコマンドを実行してしていたが、これでは駄目なようだ。

$ cd ~/rails/uma
$ script/server

として起動するとうまく動いた。わーい。

今日はここまで。

参考サイト

まだRailsのことは全然分かってない。参考になりそうなページをちょっとメモ。

やること

  • 年金
  • 税務署へ行く
  • PDF生成