LoginSignup
1
0

More than 5 years have passed since last update.

Rails 4.1 から 4.2 への対応

Last updated at Posted at 2016-07-21

rails 4.1 から 4.2 へ移行したので、その対応とかつまずいたところをまとめてみました。

以下、引用しているのはリリースノートからです。

Active Record

代入時に、そのカラムの型に cast されるようになったようです。
cast されないことを期待した validation とかがあったので対応が必要でした。

例えば以下のようなテーブルを定義したとして、

    create_table :numbers do |t|

      t.decimal  "rate", precision: 3, scale: 1, default: 1.0, null: false

      t.timestamps null: false
    end

Rails 4.1.15

> Number.new(rate: 1.23).rate.to_f
=> 1.23

Rails 4.2.6

> Number.new(rate: 1.23).rate.to_f
=> 1.2

Action Pack

結合テストの中でprocessヘルパーを呼び出すとき、パスの冒頭にスラッシュ ('/') が必要になりました。以前は省略することができましたが、これは内部実装による副作用であり、意図的な機能ではありません。
例:

test "list all posts" do
get "/posts"
assert_response :success
end

一部で冒頭スラッシュなしのコードがあったので、その部分の対応をしました。

rubygems

非互換の対応

respond_withと、これに対応するクラスレベルのrespond_toはresponders gemに移動されました。この機能を使用したい場合は、Gemfileにgem 'responders', '~> 2.0'を追記してください。

表記の通り responders gem を使うようにしました。

非推奨の対応

  • .findや.exists?にActive Recordオブジェクトを渡すことは非推奨になりました。最初にオブジェクトのidを呼び出すべきです。
  • production環境でconfig.log_levelを未設定のままにすることが非推奨になりました。
  • deliver やdeliver!が非推奨になりました。今後はdeliver_nowやdeliver_now!を使用してください。
  • config.serve_static_assets を config.serve_static_files に変更
1
0
0

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
1
0