BigFive zaakceptował odpowiedź pracował dla mnie na początku, ale potem produkowane pewne błędy podczas renderowania niestandardowych partials lub podczas renderowania błędy w formularzach .
Zainspirowany jego podejście przełączyłem się na nadpisywanie poszczególnych metod używanych przez AA do dynamicznego generowania układu (ponieważ AA nie używa statycznego pliku układu, który można łatwo zmodyfikować).
Dostępne metody można znaleźć w kodzie źródłowym, ale jest to dość oczywiste i zaczyna się od html element.
Przykład:
Aby dodać kilka klas i reorganizacji elementy:
można umieścić swój styl:
Obrotowe/stylów/active_admin.css.scss
A twój html opis w:
config/initializers/active_admin_patch.rb:
module ActiveAdmin
module Views
class Header
alias_method :original_build_site_title, :build_site_title
alias_method :original_build_global_navigation, :build_global_navigation
alias_method :original_build_utility_navigation, :build_utility_navigation
def build_site_title
div class: "side_bar_top" do
original_build_site_title
end
end
def build_global_navigation
div class: "side_bar_content" do
original_build_global_navigation
end
end
def build_utility_navigation
div class: "side_bar_footer" do
original_build_utility_navigation
end
end
end
module Pages
class Base
alias_method :original_build, :build
# This should be the same as add_classes_to_body but for the html main element
def add_classes_to_html_tag
document.add_class(params[:action])
document.add_class(params[:controller].gsub('/', '_'))
document.add_class("active_admin")
document.add_class("logged_in")
document.add_class(active_admin_namespace.name.to_s + "_namespace")
end
def build(*args)
original_build
add_classes_to_html_tag
end
def build_page
within @body do
div id: "wrapper" do
div id: "details_view" do
build_title_bar
build_page_content
#build_footer
end
div id: "master_view" do
build_header
end
end
end
end
end
end
end
end
Nie jestem pewien, jak działa twoja poprawka, czy możesz dać lepszy pomysł, jak z niej korzystać? Do tej pory @import "bootstrap"; w pliku active_admin.css.scss ma wygląd i sposób ładowania. Czy mógłbyś podać wytyczne instruktażowe? Dzięki. – Axil
Poprawka zmienia sposób działania programu ActiveAdmin poprzez nadpisanie tej metody, aby zwrócić ciąg znaków "active_admin_reskin". Zapisz go na ścieżce wymienionej w komentarzu w pierwszym wierszu. Następnie tworzy się taki układ (tylko zwykły układ Railsów) w aplikacji/views/layouts/active_admin_reskin.html.erb Zobacz, do czego jest podłączony @BigFive. – nocache
Miałem problemy z zaimplementowaniem go z mniejszym klejnotem bootstrap. Po przejściu do klejnotu SASS wszystko działało poprawnie i dodano: @ import "bootstrap-sprockets"; @ import "bootstrap"; in active_admin.css.scss – Seoman