2013-10-15 78 views
1

帕拉姆我用:防守與Active管理員

def to_param 
    user_name 
end 

,並在我的主動管理user.rb

ActiveAdmin.register User do 
    index do 
     column :id 
     column :email 
     column :user_name 
     column :created_at 
     default_actions 
    end 
end 

這當然給了我一個Couldn't find User with id=testuser

我怎麼可以指定Active Admin正確使用它?

編輯1:與它下面的答案工作,但高清到PARAM得到的覆蓋上的所有應用程序..

+1

http://stackoverflow.com/questions/7684644/activerecordreadonlyrecord-when-using-activeadmin-and-friendly-id – usha

+0

甜,工作。 。心靈回答,讓我可以upvote? –

回答

2

這將完成app/admin/user.rb中的工作:

ActiveAdmin.register User do 
    before_filter :only => [:show, :edit, :update, :destroy] do 
    @user = User.find_by_name(params[:id]) 
    end 
end 
2

覆蓋的to_param實施ActiveAdmin

ActiveAdmin.register Foobar do 
    before_filter do 
    Foobar.class_eval do 
     def to_param 
     id.to_s 
     end 
    end 
    end 
end 

參考this SO post更多信息/備用解決方案

+0

嘿vimsha,雖然它與積極管理,INAPP所有def def params被覆蓋到:id和沒有作品...有沒有一個可行的解決方案呢? –

1

你想覆蓋缺省取景器:

controller do 
    defaults :finder => :find_by_user_name 
end 
+0

這確實是最好的答案 –