読者です 読者をやめる 読者になる 読者になる

Yamakichi’s blog

yamakichiの技術ブログ

Rails5 に Draper 導入した際にエラーが出た

Rails5を使ってて出たエラーをメモ

Rails5が正式にリリースされてもうすぐ2ヶ月ほど経とうとしています。

Ruby on Rails

最近新しく作り始めたアプリケーションにRails5を採用して開発を始めました。
そこで開発を効率よく進めていくために色々とGemを導入していたのですが、導入の際にDraperでエラーが出たのでそれら紹介します。

Draper

DraperはRailsにDecorator機能を設けてくれるGemです。
Viewに渡したデータの整形を行いたい時にによしなにやってくれて、viewを汚さず実装できるようにしてくれます。
2016年8月25日現在では、Rails5では機能変更によって、最新版のDraperをinstallしたとしてもエラーになってしまいます。
導入でつまづいた時にはどうしようか迷ったのですが、色々と調べてみると解決策を見つけました。以下にのように書いて動かしました。
Gemfile

gem 'activemodel-serializers-xml', git: 'https://github.com/rails/activemodel-serializers-xml'
gem 'draper', github: 'audionerd/draper', branch: 'rails5'

どうやらRails5からは、active_model/serializers/xmlがgem化されてデフォルトではインストールされなくなっているようです。
なので上記のように別でインストールすると解決できます。

また、draper3.0.0pre1が公開されており、そちらをインストールしてもいけると思います。
3.0.0pre1ではdraperと一緒にactivemodel-serializers-xmlもインストールしてくれます。