日記: Railsの勉強の続き。

今日もRailsの勉強をした。9章、10章、11章。
学んだことを列挙しておく。

  1. 商品とカートの関連付けを行なう
  2. modelにbefore_destroyをつけてメソッドを指定し、削除前に色々な条件を設定することが可能。
  3. sessionを使うには、session[:hoge]のようにハッシュで。
  4. modelにvalidatesを定義する
  5. マイグレーションでテーブル定義の変更が可能。
    追加はadd_XXX_to_TABLE
    削除はremove_XXX_from_TABLE
  6. 値のデフォルト指定は default: XXX で行なう。
  7. Railsが察してくれないマイグレーションの場合は、upメソッドとdownメソッドを実装する
  8. upメソッドがdb:migrateで、downメソッドがdb:rollbackで実行される
  9. エラー処理。想定外の値が指定されたらActiveRecord::RecordNotFoundの例外を拾って処理。
  10. 部分テンプレート化。_line_item.html.erbのように、先頭に_を付けることで通常のテンプレートと分ける
  11. Ajax。button_to に remote: trueを追加するだけでよい。
  12. hoge.js.erbを作成し、そちらで実行されるJavaScriptを作っておくなど。
  13. 必ずAjaxなしで作ったあと、Ajaxを実装すること。
  14. ページを開いたときに実行させるようなJavaScriptはCoffeeScriptで作成する
  15. Viewにややこしいロジックをもってきて可読性が落ちそうな場合は必ずヘルパーメソッドを実装する

デグレを起こさせないためにも、Ajaxなしで実装したあとに、Ajaxを実装するという手順を踏むほうがよいことがわかった。今までの場合は、無駄を失くすためにすぐAjaxで実装していたけれど、こちらのほうがAjaxが使えない環境の場合も考慮した実装ができるのでいい。


日記: Railsの勉強。今日のまとめ。

今日はRailsの勉強をした。6章、7章、8章。
学んだことを列挙しておく。

  1. Scaffoldを作って、マイグレーションファイルにデータベースの定義を書き出す。
  2. マイグレーションからデータベースにテーブルの作成を行なう
  3. マイグレーションからロールバックすることが可能
  4. modelにvalidatesを定義する
  5. modelのユニットテスト。rake test:units。testブロックにわかり易い名前で定義できる。
  6. controllerのテスト。rake test:functionals。
  7. 全体的なテストはrake test。
  8. modelの単体テストを行なう場合はfixtureを使うとやりやすい。
  9. config/routes.rbでルーティングを定義できる。その際はpublic/index.htmlを削除すること。
  10. CSSの定義はSCSSで階層的に書く事ができる。

CakePHPをやっていたのでだいたい似ている点が多いので理解はしやすかった。erbもphpみたいな感じで書けるから、違和感もそこまでなかった。この調子でRails本を進めていきたい。


日記: はじめてのRubyを読み終えた

Railsの勉強のために、まずはRubyの勉強をする必要があるなぁと感じて、はじめてのRubyを読み続けて数日。引越の準備とかもあったので日が空いたりもしながらもようやく読み終えました。180ページくらいだったと思うので、そこまでボリュームはないんですが、知らない事ばかりだったので、面白かったです。

しかしよくあるのが、言語の仕様はなんとなくわかったけど特に作りたい物がないよねーというパターン。今回もこれです。あとRubyが使えるサーバが…。まぁ自宅サーバありますけれども。というかローカルで開発できるけれども。

サーバに関しては、Herokuが有名なので、アクセスしてみたら、RubyだけじゃなくてNode.jsやJava,Python,Scalaとかも使えるんですねぇ!知らなかった!
しかしHerokuの使い方とかがいまいちわからなかったので(英語だし)、日本語の情報ないかなーと思ってぐぐっていたら、Web+DB Pressの59号にHerokuでRails3を使うという記事があるという情報を見つけました。
この前、Web+DB Pressの総集編を買っていたばかりだったので、見たらありました。しかも詳しい。買っててよかった、総集編。

とりあえず作るものを決めないといけないけれど、感覚を掴むためにはやはり掲示板みたいなものを作るのが手っ取り早いので、そんな感じのものを作ってみようと思います。


日記: Rubyの勉強中

正確には、Ruby on Railsの勉強中ですが。
教科書には、以下のやつを使っています。

RailsによるアジャイルWebアプリケーション開発 第4版

Rails3系になって、結構変わっているということと、Ruby1.9系を使うことを考えて、この本にしました。あと最近出たばっかりという点も評価して。普通に本屋で買ったんですが、オーム社のサイトでPDF版で売ってるのがわかってちと後悔…。まぁある程度したら本の自炊しようかなとは思っていましたが…(T_T)

プログラミングRuby 1.9 −言語編−は、オーム社のサイトからPDFで買おうかなぁと思ってます。PDFにするようになると、サッと引く事はできないですけれど、携帯性にとても優れているので、本当に便利です。家にある本も随分とPDF化しています。してないのは、ポケットリファレンス系くらいになってきました。

話がそれてきたけれど、Rubyの勉強をしているので、ちょこちょことRubyの情報などもアップしていけるようにしたいと思います。勉強のしはじめなので、すごいくだらないTipsとかも出てくるかと思いますし、単純に勉強の経過報告などを書くだけになるかとも思いますが。頑張って3ヶ月くらいでそこそこのものが書けるようになりたいと思います。


Rails: Hello worldで失敗していた原因(node.js)

本の通りにRuby on Railsのチュートリアルを進めていこうとしていたら、Hello worldでエラーが起きた。
node.jsのせいで落ちているっぽいメッセージだった。

/opt/local/lib/libssl.1.0.0.dylib がないよーというメッセージだったので、なんとなくmacportsからhomebrewにしたのが原因なのかなと途中で気付く事が出来たので、node.jsの再インストールを行なったところ、うまく動くようになった。

nvm uninstall 0.4.10
nvm install 0.4.10

こんなバカなことは滅多に起こらないかもしれないけれど、一応メモとして残しておきます。