没有路由匹配错误-带有嵌套资源

| 我的
routes.rb
文件中有以下嵌套资源
  resource :issuer do
    resources :certificates
  end
我的模特:
class Issuer < ActiveRecord::Base
  has_many :certificates
end

class Certificate < ActiveRecord::Base
  belongs_to :issuer
end
访问时出现以下错误:error3ѭ
No route matches {:action=>\"edit\", :controller=>\"certificates\"}
任何帮助将不胜感激..预先感谢! 编辑:我的
rake routes
    issuer_certificates GET    /issuer/:issuer_id/certificates(.:format)          {:action=>\"index\", :controller=>\"certificates\"}
                        POST   /issuer/:issuer_id/certificates(.:format)          {:action=>\"create\", :controller=>\"certificates\"}
 new_issuer_certificate GET    /issuer/:issuer_id/certificates/new(.:format)      {:action=>\"new\", :controller=>\"certificates\"}
edit_issuer_certificate GET    /issuer/:issuer_id/certificates/:id/edit(.:format) {:action=>\"edit\", :controller=>\"certificates\"}
     issuer_certificate GET    /issuer/:issuer_id/certificates/:id(.:format)      {:action=>\"show\", :controller=>\"certificates\"}
                        PUT    /issuer/:issuer_id/certificates/:id(.:format)      {:action=>\"update\", :controller=>\"certificates\"}
                        DELETE /issuer/:issuer_id/certificates/:id(.:format)      {:action=>\"destroy\", :controller=>\"certificates\"}
    
已邀请:
您应该使用资源(复数)而不是参考:issuer中的资源。因此,请尝试以下操作:
resources :issuers do
   resources :certificates
end
issuers/2/certificates
将起作用。     
在您的routes.rb文件中,您将发布者定义为单一资源
  resource :issuer do         # <-----  using resource instead of resources
    resources :certificates
  end 
使用单一资源,您获得的路由将不允许匹配:id,因此在您的示例中,
issuer/2/certificates
这就是让您感到悲伤的“ 2”。您应该摆脱它,或在route.rb文件中将:issuer定义为标准(非单一)资源。     
您没有为
/issuer/2/certificates
定义
PUT
。而是将其定义为you13ѭ。这就是为什么您会收到该错误。 如果要编辑
certificate
,请确保生成正确的链接并包含include15ѭ。     

要回复问题请先登录注册