LoginSignup
33

More than 5 years have passed since last update.

Ruby on Rails 4.2 個人的な気になるポイント

Posted at

Rails 4.2がリリースされたみたいなので、リリースノートから気になるポイントを抜粋しました。
(個人的な趣味と感想なので、参考までに)

Active Job

4.0の時から話のあったRails側にデフォルトで組み込まれるジョブキューの仕組みがついに実装されたようです。
使ってみないと何とも言えませんが、あまり大仰なセットアップをせずにキューに登録して非同期実行が出来るようになったら便利だなと思います。

メールの非同期処理

deliver_laterメソッドとdeliver_nowメソッドによってメールを非同期で送信するか、即時送信するかを選択出来るようになったようです。
これもActive Job関連ですね。

Adequate Record

SQL文のキャッシュによって、find、find_by呼び出し、および一部の関連付けクエリの動作速度が向上するようです。

rails serverのデフォルトホスト

rails sで起動する際のデフォルトホストが0.0.0.0からlocalhostに変更になったようです。
開発時の設定でhttp://0.0.0.0:3000/と直書きしているような箇所があったら修正が必要かも知れませんね。

--skip-turbolinksオプション

Turbolinksを使わない時の為の--skip-turbolinksオプションという設定が追加されたそうです。
基本的にTurbolinksは無効にしているので、このオプションは毎回使いそうです。

ルーティングの:toオプション

下記のようにto: 'posts'to: :indexで指定していた場合は、非推奨になるそうなので、controller: :postsaction: :indexという記述に変更しておいた方が良さそうです。

get '/posts', to: MyRackApp    => (変更不要)
get '/posts', to: 'post#index' => (変更不要)
get '/posts', to: 'posts'      => get '/posts', controller: :posts
get '/posts', to: :index       => get '/posts', action: :index

URLヘルパー 文字列キー非推奨

*_pathの引数で文字列をキーにしたハッシュ形式を渡すのは非推奨になるそうです。

# 良くない例
root_path('controller' => 'posts', 'action' => 'index')

# 良い例
root_path(controller: 'posts', action: 'index')

*_filterメソッド群 ドキュメントから削除

*_filter系のメソッドは今はまだ非推奨ではないようですが、今後非推奨になり、将来的には削除されるそうなので、今のうちに*_action系のメソッドに書き換えておいた方が良さそうです。

after_filter          => after_action
append_after_filter   => append_after_action
append_around_filter  => append_around_action
append_before_filter  => append_before_action
around_filter         => around_action
before_filter         => before_action
prepend_after_filter  => prepend_after_action
prepend_around_filter => prepend_around_action
prepend_before_filter => prepend_before_action
skip_after_filter     => skip_after_action
skip_around_filter    => skip_around_action
skip_before_filter    => skip_before_action
skip_filter           => skip_action_callback

Action Mailer *_pathヘルパー非推奨

Action Mailerでは*_urlヘルパーを使う必要があるそうです。
メールの文面に記載されるlink_toなどは相対パスだと送信元のWebサイトにアクセス出来なくなってしまうので、url系に統一した方が良さそうです。

Action Mailer deliver/deliver!非推奨

Active Jobの導入によりメールが非同期で送信出来るようになったので、今までdeliverで送っていたところはdeliver_nowで明示的に即時送信であることを示す必要があるようです。

Action Mailer deliver_later導入

メールの非同期送信用のdeliver_laterメソッドが追加されました。

Action Mailer show_previews設定オプション

開発時にメールのプレビューを確認出来るshow_previews設定オプションが追加されたそうです。

ActiveRecord::Base#pretty_print追加

tappを使っていたら必要ないかも知れませんが、ARオブジェクトをppした時にきちんと整形された形式で出力されるようです。

pp topic

#<Topic:0x007fb93696bcb0
 id: 1,
 title: "The First Topic",
 author_name: "David",
 author_email_address: "david@loudthinking.com",
 written_on: 2003-07-16 14:28:11 UTC,
 bonus_time: 2000-01-01 14:28:00 UTC,
 last_read: Thu, 15 Apr 2004,
 content: "Have a nice day",
 important: nil,
 approved: false,
 replies_count: 1,
 unique_replies_count: 0,
 parent_id: nil,
 parent_title: nil,
 type: nil,
 group: nil,
 created_at: 2014-05-18 21:31:53 UTC,
 updated_at: 2014-05-18 21:31:53 UTC>

コントリビューターリスト

最後に、全てのコントリビューターのリストも公開されています。

最初のリリースから10年以上経っても未だにDHHがアクティブにコミットし続けていたり、3729人のコントリビューターのコミットが取り込まれていたり、改めてすごいプロダクトだなと思います。
自分もRuby on Railsを愛用する1人として、何らかの形で貢献していけたらと思っています。(QiitaでRailsの記事を書いたり。。)

Rails4.0にアップデートしたのがついこの間のように感じますが、相変わらずRailsの進化のスピードは速いですね。
すぐにRails5.0の足音も聞こえて来そうです。
頑張って付いて行きましょうw

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33