ActiveAdminのアセットが影響しないように切り離す
ActiveAdminを使っていると、アセットの汚染が起こるときがあるみたいですね。
ということでActiveAdminのアセットが、admin以外のページのマニフェストでは読み込まれないようにしておきます。
以下の記事を参考にさせていただきました。
ActiveAdminを使用する場合はassetの汚染に注意 - yamotonalds's blog
1. assetsを退避
admin用のアセットを退避して、読み込まないようにします。
$ mkdir app/assets/stylesheets/admin $ mv app/assets/stylesheets/active_admin.scss app/assets/stylesheets/admin/ $ mkdir app/assets/javascripts/admi $ mv app/assets/javascripts/active_admin.js.coffee app/assets/javascripts/admin/
そしたら、アセットパイプラインを書き換えます。
ルートにそれぞれひとつずつマニフェストを用意しているなら、単にrequire_directory .
とかにするのもいいかなと思います。例えば、CSS用のマニフェストなら、
# app/assets/stylesheets/application.css # ... *= require_directory . *= require_self # ...
みたいな感じで。
2. ActiveAdminのアセットの設定を変更
ActiveAdminの設定で、読み込むアセットを一旦全部リセットして、特定のものだけ登録するということをしておきます。
以下を追加すればokです。
# config/initializers/active_admin.rb # ... config.clear_stylesheets! config.register_stylesheet "admin/active_admin.css" config.clear_javascripts! config.register_javascript "admin/active_admin.js" # ...