rails
Chapter 7 "Task B: Catalog Display" Chapter 8 "Task C: Cart Creation" 8.1 Sessions, 8.2 More Tables, More Models, 8.3 Iteration C1: Creating a Cart 8.4 Iteration C2: Handling Errors, 8.5 Iteration C3: Finishing the Cart Chapter 9 "Task D: …
帰省先から書いてます:-)。 Scaling: The Share-Nothing Architecture Railsアプリケーションをスケールする際のコンセプトがShare-Nothing Architecture。Share-Nothing Architectureにより状態の管理をWeb層やアプリケーション層でなくデータベースやネッ…
この章、英語わかりにくひ…。 Picking a Production Platform まずはWEBrickとApacheとlighttpdの3つのWebサーバについて。WEBrickはRubyにバンドルされているピュアRubyのWebサーバで、特に速くはないしスケーラブルでもないけど実行させるのがメッチャ簡単…
2005年もあと5日。Chapter21はセキュリティについて。 SQL Injection フォームなど外部からのデータを直接SQL文の中で使ったりすると悪い人に任意のSQL文が実行されちゃうよというのがSQLインジェクション。例えばこんな風にしていると危ない。 Email.find(:…
Chapter20を書いた人&Action Web Serviceのコード書いた人は南アフリカの人だって。Chapter18書いた人はオーストリアだし、DHHはデンマークだし、グローバルだね。 Action Web Serviceは長いんでAWSと省略するよ。 What AWS Is (and What It Isn't) AWSではS…
目標、年内読了!Chapter19行きますよ。 Sending E-mail まずはメールを送信する設定をしなきゃね。development, testing, productionで同じ設定を使う場合はconfig/environment.rbに設定し、別々に設定したい場合はconfig/environments以下の設定ファイルに…
今、巷で話題のWeb2.0ですよ!! Intorducing AJAX は、みんな知ってるからいいよね:-)。 The Rails Way Railsには最初からAJAXのサポートが組み込まれているからWeb2.0もバッチリ。で、具体的に言うと prototype, effects, dragdrop, controlsのJavaScriptの…
いよいよChapter17大詰め。 Caching, Part Two Chapter16でキャッシュの話があったけど、Railsにはさらにページの一部分をキャッシュする機能があって、ビューのテンプレートの一部をcache()のブロックで囲んでおくとその部分だけキャッシュしてくれる。 <%=…
Chapter17つづき、いきますよ。 Layouts and Components ビューにもDRY原則に則って重複を避けるためのレイアウト、パーシャルズ、コンポーネントという仕組みがある。まずはレイアウト。レイアウトのテンプレートは以下のような感じ。 <html> <body> <%= @content_for_l</body></html>…
やべっ、また半年ほどサボるところだったよ:-)。 Form Helpers 送信されてきたフォームのパラメタは以下のようにparamsハッシュにマップされる。 id=123 #=> {:id => "123"} user[name]=Dave #=> {:user => {:name => "Dave"}} user[address][city]=Wien #=>…
ここ3日ほどメッチャチカレマチタヨ…。ちょっと間があいちゃったけど気を取り直して続き。 Formatting Helper Railsにはビルトインされたヘルパメソッドがたくさんあるので紹介するよ。詳しくはRDocを見てね。 <%= distance_of_time_in_words(Time.now, Time…
11月中に読み終わらなかったよ。ってこれだけサボってちゃなぁ…。しかもChapter17は46ページもあるし…。奥さんAction Viewですよ。 Templates テンプレートはデフォルトではapp/views/[コントローラ名]/[アクション名+拡張子]になるんだけど、以下のように直…
まだまだActionController。ちょっと飽きた… 嘘:-)。 Filters and Verification フィルタを使うとアクションの前や後などで処理を行なうことができるのよ。before, after, aroundの3種類があるのよ。まずはbeforeフィルタとafterフィルタ。コントローラ内の…
Action Controller つづきっ! Cookies and Sessions クッキーはcookiesというハッシュで読み書きできる。 cookies[:the_time] = Time.now.to_s cookie_value = cookies[:the_time]クッキーを書き込む際に指定できるオプションは以下のとおり。 :domain クッ…
Action Controller 行きます。 Routing Requests config/route.rbにリクエストされたURLをどのようにコントローラやアクション等にマッピングするかを記述する。例えば map.connect ':controller/:action/:id'とすると、store/add_to_cart/123というURLは @p…
もっともっとActive Record! Callbacks Active Recordのライフサイクルのいろいろなイベントをフックできるよ。新規レコード保存時のコールバック before_validation before_validation_on_create after_validation after_validation_on_create before_save…
もっとActive Record! もっとアップルのiMac G5欲しい! Act as DBのデータをリスト構造やツリー構造のように扱うこともできるよ。ステキじゃなーい!まずリスト構造の場合はテーブルにpositionというカラムを定義してモデルを以下のように定義。 class Pare…
あー、間が開いちゃった…。さて、前回の続きで"Relationships between Tables"から。「こっちのテーブルがあっちのテーブルに関連付けられていて、そっちのテーブルがこっちのテーブルを参照して…」とややこしくてしかも英語だから読むのにチカレマシタヨ。 …
いよいよActive Recordですよ。 テーブルとクラス DHHの趣味でテーブル名はモデルのクラス名の複数形と仮定しているけど、嫌な場合は ActiveRecord::Base.pluralize_table_name=falseとすればモデルのクラス名とテーブル名を一緒にできる。また自分でテーブ…
ディレクトリ構造 libディレクトリは自分で作ったライブラリ、vendorディレクトリはサードパーティのライブラリを入れましょう。componentディレクトリについては詳しくはChapter17で、ってそんなん多いなぁ。 設定 実行時環境(development,test,production…
12.5 TDD。ふつーにTDDの話。「コードは宿題なのでちゃんとやっとけよ!」って…、サボってやってません。12.6 テストをRakeでやるよ。いやぁ、いたれりつくせりだね。 rake test_units # モデルのテストを実行 rake test_functional # コントローラのテストを…
まずは、コントローラのテスト。ふつーに書けばいいみたい:-)。リクエストを発行するメソッドはこんな感じ。 get :index post :login, :user => {:name = 'enkimi', :password => 'enkimi'}で、アサーションはこんな感じ。 assert_response :success assert_…
さーて、いよいよテストです。Chapter12はMike Clarkという人が書いてるんだけど、英語わかりにくい…。テストにはモデルのテストとコントローラのテストがあって、モデルのテストコードはtest/unit以下に、コントローラのテストコードはtest/functional以下…
まずはChapter10DBのカラムにdatetime型,date型を使う場合はカラム名を「なんとか_at」「なんとか_on」としましょう。何かいいことあるらしい:-)。詳しくはChapter15で。ビューで render(:partial => "order_line", :collection => @pending_orders)とすると…
今回は注文の登録だよ。フォームからの入力をモデルに突っ込むには @order = Order.new(params[:order])とする。自動ではセットしてくれないのね。render()というのはservletのフォワードのイメージかな。通常はrender()を書かなくてもアクションの実行後に…
ゆっくりとしたペースで進んでおります。昨日はサボっちゃったし…。今回はエラーハンドリングとヘルパー。かゆいところに手が届くというか、よく考えられてるなぁ。1つのコントローラクラス内に複数アクション書けるというのは見通しが良くていいね。あ、そ…
ショッピングカートを題材にセッションのお勉強。セッションはコントローラの中でsessionというハッシュで参照可能。が、sessionに@がついてないけどsessionはローカル変数なの? セッションに格納するクラスはapplication.rbに書いておかないといけないらし…
Ruby on Railsはじめました。てゆーか、その前にRubyはじめました。 たのしいRuby―Rubyではじめる気軽なプログラミング作者: 高橋征義,後藤裕蔵,まつもとゆきひろ出版社/メーカー: ソフトバンククリエイティブ発売日: 2002/03メディア: 単行本購入: 3人 クリ…