Reputation: 3715
I want to display some metrics on my RailsAdmin dashboard I use custom sql query to do get the data from the DB.
How can I change the dashboard view to show that data?
I can customize app/views/rails_admin/main/dashboard.html.erb app/views/rails_admin/main/dashboard.html.haml
, but where do I define a query result
@result = Metric.data
Thanks
Upvotes: 5
Views: 3883
Reputation: 4182
You can add any number of dashboards if you want
Rails admin config
RailsAdmin.config do |config|
config.actions do
dashboard
require_relative '../../lib/rails_admin/config/actions/dashboard'
root :admin_dashboard
root :teacher_dashboard
root :director_dashboard
end
Redirect to specific dashboard when accessing default one
/lib/rails_admin/config/actions/dashborad.rb
require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'
module RailsAdmin
module Config
module Actions
class Dashboard < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :root? do
true
end
register_instance_option :breadcrumb_parent do
end
register_instance_option :link_icon do
'icon-hand-up'
end
register_instance_option :controller do
proc do
if current_user.instance_of? Teacher
redirect_to '/admin/teacher_dashboard'
elsif current_user.instance_of? Director
redirect_to '/admin/campus_director_dashboard'
elsif current_user.instance_of? Admin
redirect_to '/admin/admin_dashboard'
end
end
end
end
end
end
end
Exampled of admin dashboard controller
/lib/rails_admin/config/actions/admin_dashborad.rb
require 'rails_admin/config/actions'
require 'rails_admin/config/actions/base'
module RailsAdmin
module Config
module Actions
class AdminDashboard < RailsAdmin::Config::Actions::Base
RailsAdmin::Config::Actions.register(self)
register_instance_option :root? do
true
end
register_instance_option :breadcrumb_parent do
end
register_instance_option :link_icon do
'icon-hand-up'
end
register_instance_option :controller do
proc do
render action: @action.template_name
end
end
end
end
end
end
Upvotes: 3
Reputation: 5905
Create a index method in app/admin/dashboard.rb
file. Then fetch the results there.
Exp:
index do
# renders app/views/admin/posts/_some_partial.html.erb
@category = Category.includes(:products).find params[:id]
render partial: "category_attributes"
end
The partial here for the view of that index method.
Upvotes: -2