我用:
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 :使用下面的答案可以正常工作,但def会在所有应用中覆盖param get ..
答案 0 :(得分:2)
覆盖ActiveAdmin的to_param实现
ActiveAdmin.register Foobar do
before_filter do
Foobar.class_eval do
def to_param
id.to_s
end
end
end
end
有关此主题的更多信息/备用解决方案,请参阅this SO post
答案 1 :(得分: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 :(得分:1)
您想要覆盖默认的查找程序:
controller do
defaults :finder => :find_by_user_name
end