RailsかCakeか

自身の環境が変わったので、のんびりと勉強している余裕が無くなった。
本当ならRailsをモノにしたいが、これは先の課題として、
言語として慣れており、環境構築がRailsに比べて圧倒的に容易な(自分にとってだけど)
CakePHPに路線変更。
でも、いつかRailsもモノにしたい。
諦めてない。

uninitialized constant Rake::DSL

作業再開・・・と思ったら、netbeansが文字化け。
この間直したのだけど、ubuntuのソフトウェアアップデートの時に何か影響があったかな?
前回と同じ作業で復旧。

さて、本に沿って再開・・・。
モデルを作成して、マイグレート・・・エラー。
uninitialized constant Rake::DSL

検索して調べたところ、

これは、Rails 3.0.5以前ではrakeのバージョンが0.8.7以下でなければRake::DSLが無いというエラーになるという物。

らしい。

対処法としては、
なので、Gemfileの中で
gem ‘rake’, ‘0.8.7’
と指定して、bundle updateを実行。

・・・ところが、updateできず。
コマンドに表示された
Try running `bundle update rake`
に従い、bundle update rakeを実行し、解決。
無事マイグレーションも完了。

さて、データベースを覗いてみようとしたら、
SQLite header and source version mismatch
だと?

Railsは環境面でハマるのが一番ネックだ。
どうやらデータベースも正常に動作していないが、エラーを吐かないなあ。
ハマった。
やっぱMySQLにするか?
それともいっそCakePHPにしちゃおうかな?

SQLite

railsを勉強するのにMySQLを使おうと思ったのだけど、どうも違和感があり、本と同じSQLiteで試してみることにした。

新しいアプリを作って、rails serverで起動・・・あれ?
そういえば、SQLiteをまだインストールしてない。

http://www.sqlite.org/download.html
からダウンロード。
ダウンロードしたフォルダに移動して解凍。
tar.gzの解凍コマンドはtar zxvf ファイル名

解凍後できたフォルダに移動して
$ ./configure
$ make
$ sudo make install
でインストール完了。

再度、作成したアプリのフォルダに移動して、
bundle installを実行。
無事、sqlite3 gemがインストールされた。

試しにコントローラーを作成して、ブラウザからアクセス。
No route matches
が表示されたが、まだ設定してないのでOK。

MySQLのときのように、データベースがないとか、色々いわれないな・・・。
もう少しRailsに慣れるまでは、本と同じ環境の方が良さそうだ。

データベースが

コマンドからコントローラーを作成して、サーバーを起動し、動作確認。
あれ、データベースにアクセスできない。
config/database.yml
を開くと、データベース接続用のパスワードが空なので、設定。
再トライ。
ダメ。
えーと、データベースが無いよ。

仕事では既存のアプリをいじっていたので違和感があった。
データベースはほぼrailsのスクリプトでコントロールしてたから、
SQLでデータベースをいじることがほとんど無かったので。

SQLでデータベース作成。
うーん、本にはそう書いてないな。
やっぱり慣れるまで本と同じSQLiteにしておこうかな。

データベース作成したら、エラーが
No route matches
になった。
設定してないから、このエラーでOK。

次回はSQLiteで同じ手順踏んでみよう。

rails で mysqlを使おうとしたら。

アプリ作成時に、オプションで指定。
rails new appName -d mysql

作成されたフォルダに移動してrails serverでサーバーを起動しようとするもエラー。
gem mysql2をインストールしろと。
gem install mysql2
これもエラー、で調べる。

とりあえず、railsのバージョンが3.0.9だったのを、3.0.5に変更。

けっこうハマる。

以下をインストールで解決。
$ sudo aptitude install libmysql-ruby
$ sudo aptitude install libmysqlclient-dev

この後、gem install mysql2でインストール成功。
サーバーも無事起動。

ただし、コントローラーをジェネレートしようとしたら、warnigが出たのでGemfileに以下の修正をする。
# gem ‘mysql2’
gem ‘mysql2’, ‘< 0.3' 変更後、bundle updateを実行し、サイトコントローラーをジェネレート。 warningが消えた。 次は作成したアプリをIDEで開く。

Rubyのインストール

Rubyをインストールする。
インストール方法はこちらが詳しい。
http://www.oiax.jp/rails/rails3/install.html
このサイトは株式会社オイアクスが運営しており、Ruby on Railsのコンサルティング業務、開発をはじめ、RoRの著書もある。
Railsについて、常に色々な情報を発信もしているので、チェックしておくとよいと思う。

上記サイトの解説とおりに進めてRubyをインストール。
インストールするRubyのバージョンは、調整の必要あり。

行った作業は以下のとおり。

必要なモジュールのインストール
$ sudo apt-get install libssl-dev zlib1g-dev libreadline6-dev
※Rubyのコンパイルには、OpenSSL、zlib、readlineのライブラリが必要なので事前にインストール

ソースのダウンロードと展開
$ wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.9.2-p180.tar.gz
tarで展開
$ tar xfvz ruby-1.9.2-p136.tar.gz
$ cd ruby-1.9.2-p180

コンパイルとインストール
$ ./configure
$ make
$ sudo make install

待つことしばらく。

$ ruby -v
で、インストールしたRubyのバージョンを確認。

完了。