2007-01-01から1年間の記事一覧
&&と||の自己代入式は例外です。 foo ||= {} は foo || foo = {} です。これは、左辺が属性参照だったときに大きな違いになる可能性があります。つまり foo.bar = foo.bar || {} だと、foo.bar=というメソッドが常に呼ばれるのに対し、 foo.bar || foo.bar =…
RailsでBDDと言ったらRSpecが圧倒的にポピュラーですね。でもRSpecに馴染めないという人はいませんか?私はx.should == yという書き方からKernelを拡張する実装まで、何もかも独自路線でいく個性の強さについていけません。しかし同時にTest::Unitの垢抜けな…
現在のRails(1.2.4および2.0 Preview)にはIntegration testの中でファイルアップロードができないというバグがあるようです。実際にやってみると、fixture_file_uploadを使ってもActionController::TestUploadedFileのオブジェクトにならず、ActionControlle…
テストコードにおいて、RESTfulなURLへのリンクやformのactionがあることをassertする場合、どう書きますか?例えば下のようなリンクが表示されることを確認したい場合です。 <a href="/products/1;edit"> 下のようにパスをハードコードしてしまったら、 assert_select "a[href = /produ</a>…
今日はカラム名に(つまりモデルのattributeに)使ってはいけない単語を使ってしまい、時間をロスしてしまったのでメモしておきます。一般にプログラミング言語には識別子(つまり変数などの名前)として使ってはいけない単語、”予約語”がありますね。英語で…
タイトルを分かりやすく書くと、例えば <%= render :partial => "foo/foo", :collection => @foox %> のとき、@fooxとしてHashのArrayを渡せるか?つまり @foox = [ {:a => "moo", :b => "baw"}, {:a => "coo", :b => "bah"} ] を渡したら、{:a => "moo", :b…
MasterViewは素晴らしいプラグインなのですが、イマイチ広まらない原因と思われることを挙げてみます。 テストへの対応が不十分 functionalテストの中には当然テンプレートをレンダリングするものもありますが、そういうテストを実行したとき、テンプレート…
Railsのテンプレートはレイアウト、コンテンツ、パーシャルに分類されます。ERBを使うとこれらは別のファイルになるのですが、なんとMasterViewでは一つのXHTMLファイルです。そしてそのファイルは、レンダリング結果のサンプルとしてブラウザで表示できます…
RailsのデフォルトのテンプレートエンジンはERBですが、レンダリング結果を見るには実際にレンダリングしてみる必要があります(つまりテンプレートのままではレイアウトなどのデザインを確認できません)。MasterViewはテンプレート記述言語にXHTMLを拡張し…
responds_to_parentはAjax風のファイルアップロードを実現するためのRailsプラグインです。responds_to_parentによって生成されるレスポンスは特異なJavaScriptを含むため(後述)、専用のselector assertionを書いてパッチを送ったところ採用されましたので…
このブログでは、 Ruby on Railsに関する話題で、 まだ日本語で書かれていないこと を中心にポストしていきます。 たまに既出かも。