我已经设置了主动管理员,除了管理员用户编辑任何信息(主要是希望能够编辑密码)的能力之外,一切运行良好。我还希望能够限制每个管理员可以编辑的用户。
当我点击编辑管理员用户时,我收到以下错误:
ActionView::Template::Error (undefined method `find_by_id' for Admin:Module))
1: insert_tag renderer_for(:edit)
activeadmin (0.6.0) lib/active_admin/view_helpers/breadcrumb_helper.rb:15:in `block in breadcrumb_links'
activeadmin (0.6.0) lib/active_admin/view_helpers/breadcrumb_helper.rb:10:in `each'
activeadmin (0.6.0) lib/active_admin/view_helpers/breadcrumb_helper.rb:10:in `each_with_index'
activeadmin (0.6.0) lib/active_admin/view_helpers/breadcrumb_helper.rb:10:in `each'
activeadmin (0.6.0) lib/active_admin/view_helpers/breadcrumb_helper.rb:10:in `map'
activeadmin (0.6.0) lib/active_admin/view_helpers/breadcrumb_helper.rb:10:in `breadcrumb_links'
arbre (1.0.2) lib/arbre/element.rb:180:in `method_missing'
这是我的管理员控制器
ActiveAdmin.register AdminUser, :as => 'Admin' do
actions :all
index do
column :email
column :current_sign_in_at
column :last_sign_in_at
column :sign_in_count
default_actions
end
filter :email
form do |f|
f.semantic_errors *f.object.errors.keys
f.inputs "Admin Details" do
f.input :email
f.input :password
f.input :password_confirmation
end
f.actions
end
end
答案 0 :(得分:1)
在actions :all
permit_params :email, :password, :password_confirmation
如果这样做无效,请尝试调试:
检查是否所有管理员都有广告id
;
我也会删除as: 'Admin'
来检查,如果这可能导致错误;
我也会按如下方式编写过滤器:
filter :email, as: :select, collection: -> { AdminUser.pluck(:email)}