【问题标题】:Def to param with Active Admin使用 Active Admin 设置参数
【发布时间】:2013-10-15 18:58:36
【问题描述】:

我用:

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 to param get 会在所有应用程序上被覆盖..

【问题讨论】:

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


【解决方案1】:

覆盖 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 了解与此主题相关的更多信息/替代解决方案

【讨论】:

  • 嘿 vimsha,虽然它可以与 Active Admin 一起使用,但 INAPP 的所有 def 参数都被覆盖为 :id 并且没有任何效果...有可行的解决方案吗?
【解决方案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

【讨论】:

    【解决方案3】:

    您想覆盖默认查找器:

    controller do
      defaults :finder => :find_by_user_name
    end
    

    【讨论】:

    • 这确实是最好的答案
    猜你喜欢
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    相关资源
    最近更新 更多