使用Active Admin确定参数

时间:2013-10-15 18:58:36

标签: ruby-on-rails ruby-on-rails-4 activeadmin

我用:

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 ..

3 个答案:

答案 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