【问题标题】:Rails - ActiveAdmin not showing new Resources in MenuRails - ActiveAdmin 未在菜单中显示新资源
【发布时间】:2016-02-09 11:15:15
【问题描述】:

我正在使用带有 Rails 4 和 Grape 的 ActiveAdmin。

我正在创建新的 AA 资源 rails g active_admin:resource ModelClassName 它曾经工作正常。每个资源都在管理控制台中显示为菜单链接。

但现在由于某种原因,对于我正在创建的新模型,Active Admin 没有在菜单中显示相同的资源。

任何导致这种情况发生的原因都会有很大帮助。

Ruby 版本 - 2.2.3

Rails 版本 - 4.2.4

活动管理员版本 - 1.0.0

这是我的 GemFile

ruby '2.2.3'
gem 'rails', '4.2.4'
gem 'pg'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
# gem 'bcrypt', '~> 3.1.7'
# gem 'unicorn'
# gem 'capistrano-rails', group: :development

group :development, :test do
debugger console
  gem 'byebug'
end

group :development do
  gem 'web-console', '~> 2.0'
  gem 'spring'
end

gem 'devise'
gem 'activeadmin', github: 'activeadmin'
gem 'grape'
gem 'cancan'
gem 'jwt'
gem 'aws-sdk', '~> 2'
gem 'rmagick'
gem 'grape-swagger'

编辑 新的模型资源不起作用。但是,如果我将同一文件中的模型重命名为某个较旧的模型,它会显示得很好。

生成的 ActiveAdmin 资源文件 -

ActiveAdmin.register NewModel do # DOESN'T WORK AND DOESN'T SHOW UP IN MENU

    # See permitted parameters documentation:
    # https://github.com/activeadmin/activeadmin/blob/master/docs/2 resource-    customization.md#setting-up-strong-parameters
    #
    # permit_params :list, :of, :attributes, :on, :model
    #
    # or
    #
    # permit_params do
    #   permitted = [:permitted, :attributes]
    #   permitted << :other if resource.something?
    #   permitted
    # end

end

ActiveAdmin.register OldModel, :as => 'Some Name' do # WORKS AND SHOWS UP IN MENU

    # See permitted parameters documentation:
    # https://github.com/activeadmin/activeadmin/blob/master/docs/2 resource-    customization.md#setting-up-strong-parameters
    #
    # permit_params :list, :of, :attributes, :on, :model
    #
    # or
    #
    # permit_params do
    #   permitted = [:permitted, :attributes]
    #   permitted << :other if resource.something?
    #   permitted
    # end

end

【问题讨论】:

  • 显示生成的 Active Admin 类文件,尤其是任何“菜单”行。
  • 新资源中没有“菜单”行。编辑问题以显示生成的 ActiveAdmin 资源文件。
  • 也许在新的管理资源文件上也粘贴as: 'New Model'?
  • 试过了,可惜没用。
  • 终于解决了这个问题。我正在使用 CanCan 适配器来处理不同角色可以在管理控制台上看到的内容。我不记得我需要在角色中添加新资源。

标签: ruby ruby-on-rails-4 activeadmin


【解决方案1】:

如果您在 ActiveAdmin 中使用 CanCan gem,您的 models 文件夹将有一个 &lt;proj-name&gt;_admin_ability.rb 文件,您需要在其中将新模型添加到 can :manage(或 :read)列表。

include CanCan::Ability

def initialize(user)
    can :manage, [User, ModelClassName]
end

【讨论】:

    【解决方案2】:

    是的,授权适配器可以阻止新资源显示。它可以是 CanCan 或 Pundit 或任何其他配置有 Active Admin 的授权系统。

    您可以从config/initializers/active_admin.rb 获取您的活动管理员正在使用的特定授权方案

    在写着的那一行 config.authorization_adapter = ActiveAdmin::Adapter

    获得授权适配器后,您需要将新资源添加到适当的管理员授权中。例如权威人士,您将希望为资源创建一个新策略,允许管理员用户执行特定操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多