如何使用find_by请求而不是ID为所有操作自定义ActiveAdmin
只是将ActiveAdmin添加到我的应用程序,我使用show / edit / destroy操作时出现问题,导致我的链接不指向ID而是指向用户名称(为了使用户更具可读性)。
ActiveAdmin正确创建我的链接,如:
编辑链接: http://localhost:3000/admin/users/paul/edit (where paul is the user name)
在这种情况下,我得到: Couldn't find User with ID=paul
当然,保罗不是id,而是用户名。
如何在我的应用程序中自定义ActiveAdmin以使用find_by_name(params [:id])来执行所有操作show / edit / delete。
在其他模型中,我得到了一个所谓的“SID”,它是一个生成的盐渍ID,我也想使用find_by_sid(params [:id])以及其他模型。
非常感谢。
干杯..
这将在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
有一种更简洁的方法:
ActiveAdmin.register User do controller do defaults :finder => :find_by_slug end end
如果你按照这个railscast: http: //railscasts.com/episodes/63-model-name-in-url-revised并拥有自定义路由,你可以通过将它放在app / admin / user.rb中来修复active_admin路由。 :
before_filter :only => [:show, :edit, :update, :destroy] do @user = User.find_by_slug!(params[:id]) end
它与afiah所显示的非常接近,略有不同。
- Activeadmin formtastic动态选择
- Active Admin -refresh第二次下拉基于第一次下拉选择(Rails 3.2)
- 多级嵌套表单未在Active Admin中显示
- activeadmin:为嵌套资源添加删除
- rails ActiveAdmin嵌套表单has_one accepts_attributes_for formtastic issue
- 使用ActiveAdmin和Friendly_id时的ActiveRecord :: ReadOnlyRecord
- 如何更改ActiveAdmin显示时间的方式(每次)
- 如何将filter添加到Active Admin仪表板?
- Rails 3.2 ActiveAdmin’集合不是分页范围。’ 错误