セキュリティ系の勉強、その他開発メモとか雑談. GithubはUnity触っていた頃ものがメイン Twitterフォローもよろしくです

【Rails5】Administrateのスタイルシート読込先を変更する

やること

管理画面生成のgemadministrateにてRailsのデフォルトのスタイルシートapplication.cssから、スタイルを読み込ませる方法。そんなに難しいことはしません。

方法

以下のコマンドで_styoesheet.html.erbを生成します。これでadministrateのデフォルト挙動のレイアウト周りを編集可能になります。

$ bin/rails generate administrate:views:layout
      create  app/views/layouts/admin/application.html.erb
      create  app/views/admin/application/_navigation.html.erb
      create  app/views/admin/application/_stylesheet.html.erb
      create  app/views/admin/application/_javascript.html.erb
      create  app/views/admin/application/_flashes.html.erb


こちらが生成される_stylesheet.html.erbの中身。

# _stylesheet.html.erb
<%#
# Stylesheet Partial

This partial imports the necessary stylesheets on each page.
By default, it includes the application CSS,
but each page can define additional CSS sources
by providing a `content_for(:stylesheet)` block.
%>

<% Administrate::Engine.stylesheets.each do |css_path| %>
  <%= stylesheet_link_tag css_path %>
<% end %>

<%= yield :stylesheet %>



eachのなかに、読込先を記述します。今回であれば、デフォルトの所から呼び出すようにしたいので、applicationを指定

<% Administrate::Engine.stylesheets.each do |css_path| %>
  <%= stylesheet_link_tag css_path %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<% end %>

これで、administarteの画面から既存のスタイルシートを読込ことができます。

私はslimを使っているのでerbでの動作確認はできてませんが、、管理画面しか使用しないプロジェクトなどではこっちの方がいいかもしれません。