Ruby on rails Rails\u管理员自定义-如何在自定义控制器中使用布局?
我有一个自定义控制器:Ruby on rails Rails\u管理员自定义-如何在自定义控制器中使用布局?,ruby-on-rails,ruby-on-rails-3,rails-admin,Ruby On Rails,Ruby On Rails 3,Rails Admin,我有一个自定义控制器: class DownloadsController < ApplicationController layout 'layouts/rails_admin/application' def index end end class DownloadsController
class DownloadsController < ApplicationController
layout 'layouts/rails_admin/application'
def index
end
end
class DownloadsController
我想使用默认的rails\u管理布局。但我在访问索引操作的路径时遇到此错误:
undefined local variable or method `dashboard_path' for #<#<Class:0x28a4d68>:0x28a2560>¨
未定义的局部变量或#的“dashboard_path”方法
如何使用rails_admin使用的布局
我需要使用自定义控制器、操作和视图。只需要将其包含在rails_admin中 写入
layout 'rails_admin/application'
而不是
layout 'layouts/rails_admin/application'
你可以用我的方法试试,但如果这不是最佳做法,请改进
class DownloadsController < ApplicationController
include ActionView::Helpers::TextHelper
include RailsAdmin::MainHelper
include RailsAdmin::ApplicationHelper
include RailsAdmin::Engine.routes.url_helpers
layout 'layouts/rails_admin/application'
def index
@page_name = "custom" # just for title on template
@is_custom = true # custom marker
end
end
它确实使用rails管理员布局问题是没有加载路由..如果要向rails管理员添加内容,则必须从RailsAdmin::ApplicationController类继承控制器。从RailsAdmin类继承后,将包含布局
- unless @is_custom.eql? true
/ this is default from rails admin, I do not need this for custom controller
:javascript
$('.nav.nav-list li.active').removeClass('active');
$('.nav.nav-list li[data-model="#{@abstract_model.to_param}"]').addClass('active');
%title= "#{@abstract_model.try(:pretty_name) || @page_name} | #{[_get_plugin_name[0] || 'Rails', _get_plugin_name[1] || 'Admin'].join(' ')}"
.page-header
%h1= @page_name
- flash && flash.each do |key, value|
.alert{class: "alert-#{key}"}
%a.close{href: '#', :'data-dismiss' => "alert"}×
= value
= breadcrumb
%ul.nav.nav-tabs
= menu_for((@abstract_model ? (@object.try(:persisted?) ? :member : :collection) : :root), @abstract_model, @object)
= content_for :contextual_tabs
/ just render yield for custom controller
= yield