Как добавить заголовок active_admin в пользовательский макет? - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь настроить макет active_admin для конкретного действия. Но я не знаю, как добавить заголовок active_admin в свой макет?

app / admin / provider.rb Я отображаю страницу редактирования с макетом custom_active_admin

controller do
 def edit
   @provider = Provider.find(params[:id])
   render 'admin/providers/edit', layout: 'custom_active_admin'
 end
 ...
end

app / views / admin / provider / edit.html.haml

= semantic_form_for ...
  = f.inputs 'Location', for: :location do |location|
    = location.input :postal_code
    = location.input :prefecture

app / views / layouts / custom_active_admin.html.haml Я пытаюсь настроить макет длямое специальное действие

!!!
%html
  %head
    = csrf_meta_tags
    = csp_meta_tag
    ...
    = stylesheet_link_tag 'custom_active_admin', media: 'all'
    = javascript_include_tag 'custom_active_admin'

  %body.new.active_admin.logged_in.admin_namespace
    #header
      = yield :head
    .wrapper.without_sidebar#active_admin_content
      .main_content_wrapper
        .alert-message-container
        = yield

Мое специальное действие может работать нормально.Но мне нужно добавить заголовок на верхнюю страницу, как эти страницы, используя макет по умолчанию active_admin.Как я могу это сделать?Спасибо.

1 Ответ

0 голосов
/ 29 июня 2019

Вы можете зарегистрировать пользовательские таблицы стилей и javascript в инициализаторе конфигурации. Я рекомендую просто добавить CSS & JS в конфигурацию вашего активного администратора:

# config/initializers/active_admin.rb

# == Register Stylesheets & Javascripts
#
# We recommend using the built in Active Admin layout and loading
# up your own stylesheets / javascripts to customize the look
# and feel.
#
# To load a stylesheet:
   config.register_stylesheet 'my_stylesheet.css'
#
# You can provide an options hash for more control, which is passed along to stylesheet_link_tag():
#   config.register_stylesheet 'my_print_stylesheet.css', media: :print
#
# To load a javascript file:
   config.register_javascript 'my_javascript.js'

Если вы твердо уверены, что JS должен присутствовать только в этом отдельном представлении, вы можете включить его в само представление.

например, в моем приложении мы отображаем диаграммы на 1 странице активного администратора и включаем библиотеку диаграмм вверху представления:

= javascript_include_tag "//www.google.com/jsapi", "chartkick"

%h2 History chart

= line_chart participant.linear_chart_payload, curve: false

Скрипт идет в теле, что не идеально, но работает нормально. Я не думаю, что есть необходимость помещать CSS в само представление, так как вы должны быть в состоянии использовать селекторы, чтобы гарантировать, что CSS применяется только к представлению, к которому оно нужно.

...