我已经将rails控制器设置为使用slug而不是id来标识“Fitting”(用于显示/编辑操作),因此我可以使用这样的url来访问显示页面:
http://localhost:3000/datasheets/slug-attribute-of-fiting
在routes.rb中
resources :datasheets, only: [:index, :show, :edit], param: :slug
在datasheets_controller.rb中
def show
fitting = Fitting.where(slug:(params[:slug])).first
pdf = DatasheetPdf.new(fitting)
send_data pdf.render, filename: "#{fitting.slug}-datasheet-#{Date.today}.pdf", type: 'application/pdf', disposition: 'inline'
end
对于上面提到的url上的正常显示视图,这一切都正常工作,但是当添加ActiveAdmin gem(它生成自己的控制器,据我所知,这些控制器是不可访问的)时会出现问题。如果试图在活动的管理仪表板中编辑“配件”,则会指向
http://localhost:3000/admin/fittings/slug-attribute-of-fiting/edit
返回以下错误:
ActiveRecord::RecordNotFound in Admin::FittingsController#edit
Couldn't find Fitting with 'id'=slug-attribute-of-fiting
假设我无法访问活动的管理控制器(对吧?)我怎么能截获子弹并用它提供身份证。
谢谢