活动管理员编辑管理员用户失败(ActionView :: Template ::错误(未定义方法`find_by_id'用于管理员:模块))

时间:2014-11-20 17:40:27

标签: ruby-on-rails ruby activeadmin

我已经设置了主动管理员,除了管理员用户编辑任何信息(主要是希望能够编辑密码)的能力之外,一切运行良好。我还希望能够限制每个管理员可以编辑的用户。

当我点击编辑管理员用户时,我收到以下错误:

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  

1 个答案:

答案 0 :(得分:1)

actions :all

下添加以下行
 permit_params :email, :password, :password_confirmation

如果这样做无效,请尝试调试:

  • 检查是否所有管理员都有广告id;

  • 我也会删除as: 'Admin'来检查,如果这可能导致错误;

我也会按如下方式编写过滤器:

filter :email, as: :select, collection: -> { AdminUser.pluck(:email)}