とりあえず、Rails3を入れてみる。
インストール自体は楽だが、Windowsで行うとMysqlが使えない。
そろそろWindowsの時代もお終いかと思うくらいRubyはWindowsに冷たい。(前はgem updateをする時にsqliteのエラーが出てインストールが出来なかったくらいだ・・・。
で、色々調べてたらEveryleaf Lab さんのページに丁寧に解決方法が書いてあったので参考にさせてもらった。
(ありがとうございます。ruby-mysqlたるものがあるんですね~。)
ってことで、いざRailsプロジェクトの作成。
rails new test_app -d mysql -J
これによってデータベースはMYSQLを指定してprototype.jsを使わずにRailsプロジェクトが完成。
prototype.jsを外したのは今回はJQueryで遊びたいと思ったからである。
Gitも入れたいのだが、WindowsにGitクライアントを入れるとコンソール等の表示が変わるのと僕のGit知識が少なすぎるので今回は見送り。
(Gemを追加する時にどうせ必要になるので、近々入れる予定。)
で、早速動かそうと思ったのですが・・・。
Rubyのバージョンを1.9.2に引き上げたため、gemが皆無・・・。
Mongrelで動かそうと思ったけれど動かず。。。
gem install mongrelでインストールしたけど駄目…。
まぁ、ここは本質ではないので久々にWEBrickで動かしてみる。(どーせー本格起動する場合はPassengerになる事だし。開発環境は何でもいいさ。)
とりあえず、起動は確認。
rails g scaffold post title:string body:text
ってことで、おなじみのscaffoldコマンドを実行・・・・。
おや?
invoke active_record
in `rescue in establish_connection': Please install the ruby-mysql adapter: `gem install activerecord-ruby-mysql-adapter` (no such file to load -- active_record/connection_adapters/ruby-mysql_adapter) (RuntimeError)
謎のエラー発生。
gemを入れれば良いのかと
gem install activerecord-ruby-mysql-adapter
を実行してもダメ。
bundle installでGemって入ってるんじゃないの?
何故?
もう少し詳しくエラー内容を見てみると、以下のようなエラーメッセージが出力されていた。
Ruby192/lib/ruby/gems/1.9.1/gems/activerecord-3.0.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:71:in `rescue in establish_connection': Please install the ruby-mysql adapter: `gem install activerecord-ruby-mysql-adapter` (no such file to load -- active_record/connection_adapters/ruby-mysql_adapter) (RuntimeError)
で、そのフォルダを見てみると・・・。
ruby-mysqlのアダプターが無い・・・。
まぁ、これも本質ではないと判断しておとなしくmysqlアダプタを使用したら上手く動いた。
めでたしめでたし。
・・・とやってしまうと、今日のこの時間がもったいないのでもう少し進めてみる。
scaffoldが成功したので、マイグレーションをかけてみる。
class CreatePosts < ActiveRecord::Migration
def self.up
create_table :posts do |t|
t.string :title
t.text :bodyt.timestamps
end
enddef self.down
drop_table :posts
end
end
マイグレーションの対象はこんなファイルである。
(NetBeansでマイグレーションを行ったら、rakeタスクが見つからないと怒られた。コンソールだと成功するのに・・・。なんでだろう。)
マイグレーションをかけたらさあ実行だ!
rails s
今回のサーバー起動コマンドはこんな感じ。
昔あった「script」フォルダの中は綺麗に「Rails」ファイルだけになっています。
で、
http://localhost:3000/posts
へアクセスしたところ正常に起動を確認。
日本語入力しても文字化けをしない事を確認。(しかし、WEBrickは遅い・・・。)
ちらちらとコードを見てみる。
ApplicationControllerに関しては殆ど変わり映えが無い。
ただ気になったのが、やたらすっきりしている。すなわちコメントが一切無くなっているのだ。
Rails2の時は作成時にごてごて書いてあったんだけどなぁ・・・。
後、気になったのが
helper :all
これが無くなっている。ヘルパーは使えなくなるのだろうか?
それとも、自動的に読みこまれるのだろうか?これは後の楽しみにしておく。今は追求せず。
他のぱっと見はあまり変わっていない。しかし、噂通りhメソッドが無くなっていた。
やはり、これは衝撃である。
むかーしやったVelocityを少し思い出してしまった。
まぁ、これでXSSに悩まされることが極端に減る事は間違いない。(Scriptタグを入れまくるテストはもうこりごりだ。。。)
他にも色々違いがあるようだが、いったん飛ばして、噂のSexyValidationを使ってみる。
validates :title, :presence => true, :length => {:maximum => 20}
うーん。
素敵。これでカラムに注目した書き方が出来る。
今までだと、入力チェックは入力チェックのみしか書けなかったのでこれは便利!
長くなってきたので今日はこの辺で筆を置こうと思う。
Rails2.3.8が僕を呼んでいるので、そっちに行ってきます。
まだ当面はRails3は使えないなぁ・・・。
Windows環境がとにかく貧弱すぎる。Linuxに移行する時が近づいてきたのかもしれない。。。
参考文献
- WEB+DB PRESS Vol.58/編
- ¥1,554
- Amazon.co.jp
※この本は必読ですな。もうすこしページを増やしてほしいくらい。
P.S.
以下のようなRedmineの形式でコードや引用を掲載できないのかな?
なんか、簡単に引用句をつけたい。。。
<pre>
コード
</pre>