Активный администратор: передать переменную экземпляра для пользовательской страницы

У меня есть пользовательская страница в ActiveAdmin под названием статистика, где я хочу отображать диаграммы с данными из базы данных.

Теперь я использовал жемчужину Gon и хочу пройти данные на мою пользовательскую страницу через переменную экземпляра.

Обычно вы добавляете строку gon в действие index.

class ProductsController < ApplicationController
  def index
    gon.rabl "app/views/products/index.json.rabl", as: "products"
  end
end

Но для моей пользовательской страницы в активном администраторе нет контроллера. Как мне это сделать? Или это нужно делать через личный кабинет?


person Mexxer    schedule 06.06.2012    source источник


Ответы (2)


Ваша пользовательская страница визуализируется из контроллера «Ресурс», то есть из ресурса, который вы создали в своем приложении? Если да, то это сам контроллер. Вы можете определить любое пользовательское действие в контроллере для того же самого. И вы можете использовать ту же стратегию для передачи данных на свою страницу, что и для частичных данных, то есть с помощью :locals

person Shalvika    schedule 08.08.2012

В активном администраторе есть контроллер, несмотря на это, вы не можете передать переменную экземпляра в часть arbre. Но вы можете использовать для этого хэш params:

ActiveAdmin.register_page 'SomePage' do
  menu :label => 'Menu label'

  controller do
    def index
      params[:some_var] = 'value_of_some_var'
    end
  end

  content 'Page title' do
    h2 "This is some_var: #{params[:some_var]}"
  end
end

P.S.: Если вы не хотите менять params, то все переменные экземпляра хранятся в @arbre_context.assigns. Вы также можете сделать так:

ActiveAdmin.register_page 'SomePage' do
  menu :label => 'Menu label'

  controller do
    def index
      @some_var = 'value_of_some_var'
    end
  end

  content 'Page title' do
    h2 "This is some_var: #{@arbre_context.assigns[:some_var]}"
  end
end
person Jiemurat    schedule 18.01.2014