Riding Rails: Rails 3.2 RC1: Faster dev mode & routing, explain queries, tagged logger, store
rails4の話もありますが、まずは順番に。
細かいの見ていくと、いろいろ変わってます。
Faster dev mode & routing
開発モードが早くなるみたい。
paneq/active_reload - GitHub
ってやつにinspireされたらしい。
ちょろっと覗いてみると、リクエストの度にクラスをreloadしなおしているのを
変更があったときだけreloadするというものらしい。
これは、いい修正ですね。
(ソース見たけど、ぱっと理解できなかった。この辺分かるようになりたいわ。)
routingも早くなるらしい。特に100以上のリンクがある場合、顕著だとか。
rails/journey - GitHub
tenderlove先生の作品です。
Explain queries
explainが使えるようになると。これもいいですね。
使い方。
puts Person.active.limit(5).explain
詳しくはこちら。
Riding Rails: What's new in Edge Rails: EXPLAIN
SQLite/MySQL/PostgreSQLで可とのこと。
Tagged logger
ログにタグ情報を付加できるっぽい。
使ってみないと利便性がよくわからん。
Active Record Store
KVSとしてARを利用できる。
(本格的なKVSが不要な場合の用途のよう。)
他
~/.railsrc
さらっと眺めたところ、面白そうなのは下記。
Railties 3.2.0 (unreleased)
・railsrc
rails new時のオプションに「~/.railsrc」が使えるようになったと。
・destroy alias d
rails d model post みたいな感じでdestroyできる。(destroyたまーに使います。)
・rails generateのdefaultがstring
rails g scaffold Post title body:text author
Action Pack 3.2.0 (unreleased)
・button_tag が追加
#こんなやつ <%= form_for @post do |f| %> <%= f.button %> <% end %>
・Date helperにuse_two_digit_numbersオプションが追加
年月を0埋め
・layoutにonly、exceptオプションが設定可
class CarsController layout 'single_car', :only => :show end
ActiveSupport 3.2.0 (unreleased)
・Time#all_day/week/quarter/yea
Event.where(created_at: Time.now.all_week)
Active Record 3.2.0 (unreleased)
・migrations時にscopeが渡せるようになったみたい
(いまいちピンとこないが)
・ActiveRecord::Relation#pluck
配列を返すらしい。面白い。
Client.pluck(:id)
・Deprecated
軒並み。
set_table_name
set_inheritance_column
set_sequence_name
set_primary_key
set_locking_column
self.table_name=
これで定義するらしい。うん、こっちの方がしっくりくるわ。
・uniq
# before Client.select('DISTINCT name') # after Client.select(:name).uniq
・first_or_create, first_or_create!, first_or_initialize
User.where(:first_name => "Scarlett").first_or_create!(:last_name => "Johansson")
ん〜、これは微妙。