なるようになるブログ

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

rails commit log流し読み(2014/07/06)

2014/07/06分のコミットです。

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

activerecord/CHANGELOG.md

actionpack/CHANGELOG.md


Re-enable foriegn key tests on MySQL

activerecord/test/cases/associations/belongs_to_associations_test.rbactiverecord/test/schema/schema.rbの修正です。

MySQLでのforiegn keyのテストを有効にしています。対応自体のコミットは後で。


If our connection is explicitly non-strict, tell MySQL

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

strict modeの判定方法を修正しています。

最初にMySQLの設定内容を確認するようにしています。


Fix mysql/mysql2 failing with FK constraint errors

activerecord/test/cases/persistence_test.rbの修正です。

MySQLでforiegn keyのテストがエラーになっていたのを修正しています。

読み込むfixtureが足りてなかったようです。

しかし、同じ設定でPostgreSQLではエラーになって無かったようなので、色々と難しいですねえ。


Revert "Merge pull request #16059 from jenncoop/json-serialized-attr"

JSONのserialized処理をrevertしています。

masterでは正常に動作しており、特に対応が必要無いから、との事。


[ci skip] Concludes changelog links in the bottom.

guides/source/4_2_release_notes.mdの修正です。

ページ下部に各CHNAGELOGへのリンクをまとめて追加しています。

今後使い回しするのに便利だから、との事です。成る程。


Merge pull request #16044 from jjb/patch-1

guides/source/4_1_release_notes.mdの修正です。

ActionMailer Previewのリンクにアンカーを追加しています。doc内の該当箇所に直ぐ遷移出来るようにする為、ですね。


active_record: Type cast booleans and durations for string columns.

ActiveRecordのType cast処理の修正です。

Stringカラムに対してて、Boolean / ActiveSupport::Durationクラスの値を指定した場合に、Stringに変換するよう修正しています。

# before
App.where(apikey: false) # => SELECT * FROM users WHERE apikey = 0

# after
App.where(apikey: false) # => SELECT * FROM users WHERE apikey = '0'

RDBMSによって、動いたり動かなかったり、という問題があったようです。


Generate shallow paths for all children of shallow resources.

actionpack/lib/action_dispatch/routing/mapper.rbの修正です。

shallow resourcesの生成処理にバグがあったのを修正しています。

# routing
resources :blogs do
  resources :posts, shallow: true do
    resources :comments do
      resources :tags
    end
  end
end
# before
/blogs/:blog_id/posts/:post_id/comments/new(.:format)

# after
/posts/:post_id/comments/new(.:format)

:postsshallow: trueを設定しているので、blogs無しのpathが生成されるべきなのですが、そこの生成処理にバグがあったようです。


[ci skip] /sqlite/i --> SQLite

各docの修正です。

"sqlite -> "SQLite"に修正しています。


Merge pull request #15958 from aditya-kapoor/active-model-naming-guide

rails guideのActive Model Basicsの修正です。

ActiveModel::Namingの項を追加しています。

class Person
  extend ActiveModel::Naming
end

Person.model_name.name                # => "Person"
Person.model_name.singular            # => "person"
Person.model_name.plural              # => "people"
Person.model_name.element             # => "person"
Person.model_name.human               # => "Person"
Person.model_name.collection          # => "people"
Person.model_name.param_key           # => "person"
Person.model_name.i18n_key            # => :person
Person.model_name.route_key           # => "people"
Person.model_name.singular_route_key  # => "person"

naming系のメソッド多いですねえ。