Rails - ActiveAdmin 未在菜单中显示新资源
Rails - ActiveAdmin not showing new Resources in Menu
我将 ActiveAdmin 与 Rails 4 和 Grape 一起使用。
我正在创建新的 AA 资源
rails g active_admin:resource ModelClassName
它曾经工作正常。每个资源都显示为管理控制台中的菜单 Link。
但现在出于某种原因,对于我正在创建的新模型,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
是的,授权适配器可能会阻止显示新资源。它可以是 CanCan 或 Pundit 或任何其他配置了 Active Admin 的授权系统。
您可以从 config/initializers/active_admin.rb
获取您的活动管理员正在使用的特定授权方案
在阅读的那一行
config.authorization_adapter = ActiveAdmin::Adapter
获得授权适配器后,您需要将新资源添加到正确的管理员授权中。例如 Pundit,您将希望为允许管理员用户执行特定操作的资源创建一个新策略。
如果您将 CanCan
gem 与 ActiveAdmin 一起使用,您的 models
文件夹将有一个 <proj-name>_admin_ability.rb
文件,您需要在其中将新模型添加到 can :manage
(或:读取)列表。
include CanCan::Ability
def initialize(user)
can :manage, [User, ModelClassName]
end
我将 ActiveAdmin 与 Rails 4 和 Grape 一起使用。
我正在创建新的 AA 资源
rails g active_admin:resource ModelClassName
它曾经工作正常。每个资源都显示为管理控制台中的菜单 Link。
但现在出于某种原因,对于我正在创建的新模型,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
是的,授权适配器可能会阻止显示新资源。它可以是 CanCan 或 Pundit 或任何其他配置了 Active Admin 的授权系统。
您可以从 config/initializers/active_admin.rb
在阅读的那一行
config.authorization_adapter = ActiveAdmin::Adapter
获得授权适配器后,您需要将新资源添加到正确的管理员授权中。例如 Pundit,您将希望为允许管理员用户执行特定操作的资源创建一个新策略。
如果您将 CanCan
gem 与 ActiveAdmin 一起使用,您的 models
文件夹将有一个 <proj-name>_admin_ability.rb
文件,您需要在其中将新模型添加到 can :manage
(或:读取)列表。
include CanCan::Ability
def initialize(user)
can :manage, [User, ModelClassName]
end