トップ «前の日記(2005-02-06) 最新 次の日記(2005-02-16)» 編集

3 日坊主日記


2005-02-10 [長年日記]

_ [Rails] fix

樂水開発日記へのつっこみです。

Rev.523
clone_structure_to_test の機能はかなり前から ActiveRecord に備わっています (おそらく fixtures と同時に)。 この修正は、test_{functional,units} の前にはきちんと clone_structure_to_test するようになったということだと思います。 ちなみにコピー元は production db ではなくて development db です。
Rev.526
もともと cgi.rb の parse は nil を返さない (いつも String を返す) んですが、 この Rails の拡張によって、POST でデータが空のときに nil が返ってしまい、その後の gsub などでエラーになっていました。 なので、nil ではなく '' を返すように修正したということです。
Rev.527
primary_key の変更は、primary_key メソッドの上書き (override) で可能です。 が、primary_key のように複雑なメソッドを上書きするときは、元の定義を活かしたいことがあります。 そのようなときは、alias で別名を作ってから override して、元の定義を呼び出すのが常なのですが、 この修正により primary_key= は自動的に元の定義を original_primary_key に alias するので、書きやすくなるよね、ということだと思います。
inheritance_column については、ActiveRecord の base.rb に載っています: db table を元に AR class を継承するとき、標準では "type" column にクラス名が保持されます。 inheritance_column を再定義すると、このカラム名を変更できます。

いくつか興味を惹かれた (特に Rev.526 は先の私の patch が元になってるので) 点について書いてみました。

追記: Rev.527 は、普通に super を使えばいいような気もする。

[]