微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 具有友好ID的ActiveAdmin

我使用friendly_id在我的rails 4应用程序与slug.现在我正在使用 active_admin gem.

问题:

当我点击群组资源的活动管理员显示链接时,它会抛出以下异常:

ActiveRecord::RecordNotFound at /admin/groups/username20-s-group-1

我想我需要覆盖一些active_admin的功能吗?

解决方法

有些情况下,当应用程序退出了几个资源时,为了保持DRY,有一个很好的解决方案,需要很少的代码来整个应用程序 – 只需要重写activeadmin的资源控制器.

使用以下内容创建config / intializers / active_admin_monkey_patching.rb文件

ActiveAdmin::ResourceController.class_eval do
  def find_resource
    finder = resource_class.is_a?(FriendlyId) ? :slug : :id
    scoped_collection.find_by(finder => params[:id])
  end
end

不要忘记重新启动服务器.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐