2011-08-26 33 views
7

Tôi cần phải thêm một vài liên kết đến một số trang nhất định của ứng dụng trong các trang ActiveAdmin. Tôi có thể làm điều này bằng cách sử dụng sidebars, nhưng tôi sẽ phải lặp lại mã cho mỗi tài nguyên của tôi. Có cách nào để thêm liên kết tùy chỉnh vào tiêu đề không? Hoặc xác định một thanh bên sẽ xuất hiện cho tất cả các tài nguyên?Cách thêm liên kết quay lại ứng dụng trong ActiveAdmin?

Trả lời

14

Tôi cũng sẽ không muốn bỏ qua việc thiết config.site_title_link trong initializers/active_admin.rb.

Tôi khá chắc chắn phải mất một biểu tượng đại diện cho tên của một tuyến đường từ ứng dụng của bạn, ví dụ:

config.site_title_link = :root 

sẽ liên kết các tiêu đề trang web để root_path ứng dụng của bạn.

+0

Cảm ơn! Đã sử dụng phiên bản ActiveAdmin cũ hơn không hỗ trợ liên kết tiêu đề có thể định cấu hình. Đã nâng cấp lên phiên bản mới nhất và định cấu hình nó ngay bây giờ. –

+0

Và có, nó hỗ trợ các biểu tượng cũng như –

+0

Vui mừng khi biết nó làm việc cho bạn - rõ ràng, nếu bạn cần nhiều hơn một liên kết trong tiêu đề của bạn, điều này không thực hiện điều đó. Nhưng nó có vẻ như là một khởi đầu rất tốt! –

2

tôi nghĩ rằng không có xây dựng theo cách để làm điều đó, nhưng bạn có thể ghi đè lên làm cho logic trong TabsRenderer (2.2)/TabbedNavigation (3.0):

def render_menu(menu) 
    content_tag :ul, :id => @options[:id] do 
     menu.items.collect do |item| 
     render_item(item) 
     end.join.<<('your_custom_stuff').html_safe 
    end 
    end 
11

Cảm ơn @phoet! Thực hiện nó bằng cách ghi đè các HeaderRenderer thay vì:

module ActiveAdmin 
    module Views 
     class HeaderRenderer 
     def to_html 
      title + global_navigation + application_link + utility_navigation 
     end 

     def application_link 
      link_to('Back to Application', root_url) 
     end 
     end 
    end 
    end 
+0

Điều này có phải được đặt ở bất kỳ nơi nào cụ thể không? ví dụ: 'app/admin/views/header_renderer.rb'? – mbillard

+0

@mbillard: bạn có thể đặt nó vào bất kỳ tệp nào trong cùng một thư mục nơi bạn xác định tất cả các trang của mình. Mã này sẽ ghi đè lên các phương thức trong các lớp ActiveAdmin nội bộ. –

+0

Thats đúng, hoặc một nơi tốt hơn để đặt này sẽ được trong một tập tin riêng biệt (có thể được gọi là active_admin_initializer.rb) theo thư mục config/initializers. Tất cả các tệp trong thư mục "config/initializers" sẽ được Rails tải trong khi khởi động. –

Các vấn đề liên quan