セキュリティ系の勉強・その他開発メモとか雑談. 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での動作確認はできてませんが、、管理画面しか使用しないプロジェクトなどではこっちの方がいいかもしれません。