The RSpec Book 読書記録(2)

Rails に入ったとたんにはまりだしたw まず、19章で環境のセットアップが本書と異なる。 本書は Rails 3.0.0, cucumber-rails 0.3.2 となっており、自分は Rails 3.2.11, cucumber-rails は 1.3.0 をインストールした。 そうしたところ、web_step.rbが最新の cucumber には入っていないらしい。 20章から急に駆け足になる。序盤の丁寧な説明は全くなく、サンプルコードをダウンロードして後はよろしく見てくれというスタンスっぽい。ソースコードは http://pragprog.com/titles/achbd/source_code からダウンロードできる。 おかげでいろいろハマッタのでメモしておく。 attr_accessible が必要 Rails 3.2 あたりからセキュリティ強化のため、フォームからモデルのインスタンス変数にアクセスする場合は、明示的に attr_accessible をつける必要があるらしく追加した。 model/genre.rb `class Genre < ActiveRecord::Base has_and_belongs_to_many :movies attr_accessible :name end ` model/movie.rb `class Movie < ActiveRecord::Base has_and_belongs_to_many :genres attr_accessible :title, :release_year, :genres .... ` migrateに余計なカラムつけない has_and_belongs_to_many にタイムスタンプは不要となったので削る db/migrate/20130129180816_create_genres_movies.rb TYPO。。。 意気揚々とrake cucumberするもエラー。 Scenario: Create movie in genre # features/create_movie.feature:7 Given a genre named Comedy # features/step_definitions/genre_steps.rb:9 When I create a movie Caddyshack in the Comedy genre # features/step_definitions/movie_steps.rb:9 Then Caddyshack should be in the Comedy genre # features/step_definitions/movie_steps.rb:18 undefined method `movies' for #<Genre:0x007f839de03260> (ActionView::Template::Error) どうやら、genre.moviesでエラーになっている。TYPOしてしまってhas_and_belongs_to_many :moveis としてしまいエラーが発生していた movies に直した。 ...

January 30, 2013 · nnasaki

The RSpec Book 読書記録(1)

ちょこちょこ Rails をいじる機会が多くなってきたので、やっぱりテスト書かなくちゃと思って The RSpec Book を購入しました。(たまたま翔泳社のポイントをいただいたというのも大きいけど) [ The RSpec Book (Professional Ruby Series) ](http://www.amazon.co.jp/exec/obidos/ASIN/4798121932/hatena-blog-22/)[The RSpec Book (Professional Ruby Series)](http://www.amazon.co.jp/exec/obidos/ASIN/4798121932/hatena-blog-22/)- 作者: David Chelimsky,Dave Astels,Zach Dennis,角谷 信太郎,豊田 祐司,株式会社クイープ- 出版社/メーカー: 翔泳社- 発売日: 2012/02/22- メディア: 大型本- 購入: 6人 クリック: 129回- この商品を含むブログ (13件) を見る タイトルは RSpec とあるけど、前書きにあるとおり Cucumber も出てくるし、BDD の側面が強い。ちゃんと BDD と TDD のサイクルをどう回すか、アジャイル開発とはまで出てきて、良いことが書いてある。 さて、目的の Rails については前半は出てこなくて、19章以降になる。ここで Gemfile に Cucumber を書いてインストールするんだけど、本書のままだと Rails 3.2.11 でうまく動かなかったのでメモしておく。cucmber-railsとdatabase_cleanerをtestグループにのみ含めるのがポイント。 `group :development, :test do gem "rspec-rails" gem "webrat" end group :test do gem "cucumber-rails" gem 'database_cleaner' end `

January 27, 2013 · nnasaki

年末年始にやったことメモ

せっかくの休みなのに、所用で友人との忘年会2件ぐらい参加できなかったので黙々とプログラミングをするとか、とても勿体ない年末年始を過ごした。 忘れないうちにやったことと感想をメモしておく。iOS と Play Framework と Rails をやった。 iOS 2歳の息子が電車とか車が大好きなので、あいうえお順に電車を表示するアプリを作った。単純に page based application で写真を表示するようにしただけ。写真は wikipedia から拾ってきた。写真のライセンスを確認していなかったので、ソース公開は現時点でちょっと控える。写真のライセンスを確認したら公開したい。 今後やりたいことは2つある。 起動時にメモリにガッって、全写真を読み込むのでとてもよろしくない。Core Data やらを勉強してページごとに動的に読むように改善したい。 写真のリサイズは iOS 6 だと自動でやってくれるけど、iOS 5 だとやってくれないのでなんとかしたい。でも面倒なので iOS 6 な iPad を購入して息子に与えてしまった。お金で解決できることはお金で解決してしまうというのが最近のモットー。ヴァイヤイヤイヤイヤー、 Play Framework いまさらながら、Web+DB vol 71 を見ながら写経してみた。やってみた感じ、View は Razor なので ASP.NET MVC と同じ感じで組めてすんなり入れた。けれど、SQLを直接書く必要があったり Model と Controller は Scala で書かれたコードを見てもイマイチ理解できなくて、今後使うことは今のところ無いかなという感想。 非同期やホットリロードという魅力的な利点があることは理解したので、今後 Scala 力が高まったらまた試してみたいと思った。 Ruby On Rails お仕事でプロトタイプを作成するのにちょっと使った。だいぶ前にハローワールドぐらいはやってたんだけど、テストや配信周りを含めて本腰入れてやってみた。 Assets Pipeline とやらの仕組みが最初わからず、なんで jQuery やら SASS やらがロードされるのかわからなかった。あと、Production で Deploy するとそこら辺でエラーになったりとか。 けれど、ググればなんとかなった。持っている本は Rails 1.x や 2.x の頃で、現在の3.2とは異なりすぎていて吹いた。 今のところ Play よりは理解できているので、もうしばらくいじってみたいと思う。Rails だけでなく、テストに RSpec や Cucumber を使ったり、本番環境への配信も Chef やら Capistrano 等の Rails 周りのやつも使っていきたい。開発・テスト・デプロイとすべて一貫して Ruby でできるあたりに、Rubyist の Ruby 愛を感じた。 ...

January 9, 2013 · nnasaki