なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2014/12/28)

2014/12/28分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md


reduce duplication in ConnectionAdapters::Table docs. [ci skip]

activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rbのdocの修正です。

ConnectionAdapters::Tableクラスの各メソッドのdocに"See SchemaStatements#xxx"を追加しています

ConnectionAdapters::TableクラスとSchemaStatementsクラスの各メソッドの処理が大分近しいので、詳細はSchemaStatementsの方のdocを見てとの事です。


add autoload for ForeignKeyDefinition.

activerecord/lib/active_record/connection_adapters/abstract_adapter.rbの修正です。

ForeignKeyDefinitionクラスのautoloadを追加しています。


Support for any type primary key.

ActiveRecordのConnectionAdaptersの修正です。

primary keyに任意の型のカラムを指定出来るよう修正しています。


Add bigint primary key support for MySQL.

ActiveRecordのConnectionAdaptersの修正です。

primary keyにbigintを指定した場合のサポートを追加しています。これにより、以下のような書き方が出来るようになっています。

create_table :foos, id: :bigint do |t|
end

Provide a better error message for unsupported classes in serialize

activerecord/lib/active_record/coders/yaml_column.rbの修正です。

serialize出来ないクラスがserializeメソッドに指定された場合に、より明確なエラーメッセージが表示されるよう修正しています。

因みに、出力されるエラーメッセージは、"Cannot serialize #{object_class}. Classes passed toserializemust have a 0 argument constructor."です。


Provide :touch option to save() to accommodate saving without updating timestamps. [#18202]

ActiveRecordの修正です。

savesave!メソッドtouchオプションを追加しています。

デフォルトでtouch: trueになっていますが、timestampsを更新したく無い場合に、touch: falseを指定してあげると、timestampsの更新無しでデータの更新が行えます。


Fix warning: `*' interpreted as argument prefix

activerecord/lib/active_record/timestamp.rbの修正です。

()が無くてRubyのwarningが出力されていたのを対応しています。