今も勉強会中なんだけど、自分の頭じゃ追いつかないレベルの話が展開されてるので、前半にやった初心者向け講座のメモを残しておきます。
**Scaffoldの半歩先へ 講師:yuum3氏 http://d.hatena.ne.jp/yuum3/ 資料:http://www.ey-office.com/blog.htmlの Ruby on Rails入門セミナー 2008年4月25日と ほぼ同じものを使われていました。 開発環境 IDE (RadRails NetBeans 3rdRail) TextMateなど。 極めればCUI一本で超速く開発できるよ。 Rails本は一冊はまず読むべき。 Rubyの入門書もちゃんと読む おすすめはYugui著『初めてのRuby』 演習問題のコードとかちゃんと書く。 Railsのメジャーアップは2年に一回くらい。 ドキュメントは、まずはExampleを読む。
とりあえずtodoアプリを作ってみよう。
kze$ rails todo create create app/controllers create app/helpers create app/models (中略:いろいろと必要なファイルを作ってる。) create doc/README_FOR_APP create log/server.log create log/production.log create log/development.log create log/test.log kze$ cd todo/ kze$ ls README config lib script vendor Rakefile db log test app doc public tmp #こんなディレクトリ構成ができ上がる。 kze$ ./script/generate --help Usage: ./script/generate generator [options] [args] (中略:generateのヘルプ) kze$ ./script/generate scaffold --help Usage: ./script/generate scaffold ModelName [field:type, field:type] (中略:generateのヘルプ) kze$ ./script/generate scaffold todo due:date task:string exists app/models/ exists app/controllers/ (中略:scaffoldでモデルとかコントローラとか作った。) kze$ rake --tasks (in /Users/kze/program/ruby/rails/todo) (中略:rakeの使い方) kze$ rake db:migrate (in /Users/kze/program/ruby/rails/todo) == CreateTodos: migrating ==================================================== -- create_table(:todos) -> 0.0036s == CreateTodos: migrated (0.0041s) =========================================== kze$ ./script/server #これでWebサーバが動く。 #http://localhost:3000/todos にアクセス。 #簡単なtodoアプリが出来ている。
練習問題:todoを日付順にソートしてみよう
正解:app/controllers/todos_controller.rbのindexメソッドを次のように書き直す。
def index # @todos = Todo.find(:all) @todos = Todo.find(:all, :order => 'due')
dateとかstringはRailsの型 RubyやDBの型じゃない。 とりあえず動かしてみてCookieがどうたらのエラーが 出ることがあるがそれはあんまり気にしないでリロード。 Railsのディレクトリ構成(一部のみ抜粋) config 設定 public HTML/CSS/JSなど vender プラグインなど app/helper モデルとはちょっと違うかな?というものを置いとく。 表示の補助。 RESTをちゃんと勉強する。 コントローラからviewに渡せるのはインスタンス変数(@hoge)のみ。 SQLインジェクションを防ぎたければプレースフォルダを使え。 flashは次のページまで有効なセッション :stringなどはシンボルで特殊な文字列だと思っていい。 log/development.logをたくさん見る。SQL文が出たりするので、 それを参考にする。 配列やオブジェクトはinspactで見やすく表示することができる。 Rails版irbは./script/console ・ユニットテスト 絶対書く。 完璧を目指さず出来るところからやる。 ・実行環境 apache(mod_proxy_balancer) + Mongrel ・プラグイン Restful authentication : ログイン認証一式 ・先に進むには ソースコードを読む なにか作ってみる コミュニティー・勉強会への参加 Blogを書く