如果对象是可链接的,我有一个包含链接的通用部分。
URL 是使用 polymorphic_url 生成的。如果 polymorphic_url 引发 NoMethodError,那么我不包含链接。
这通常效果很好,除非资源具有更新或销毁操作但没有显示操作。在这种情况下,polymorphic_url 生成一个有效的 URL,它只是对 GET 无效。
有没有办法将 polymorphic_url 限制为特定的请求方法,或者确定返回的 URL 是否对 GET 有效的好方法?
如果对象是可链接的,我有一个包含链接的通用部分。
URL 是使用 polymorphic_url 生成的。如果 polymorphic_url 引发 NoMethodError,那么我不包含链接。
这通常效果很好,除非资源具有更新或销毁操作但没有显示操作。在这种情况下,polymorphic_url 生成一个有效的 URL,它只是对 GET 无效。
有没有办法将 polymorphic_url 限制为特定的请求方法,或者确定返回的 URL 是否对 GET 有效的好方法?
我再看一下recognize_path,并让它工作。
begin
url = polymorphic_url(...)
# validate URL, since polymorphic URL may return a URL for a
# different method
Rails.application.routes.recognize_path(url, {:method => 'GET')
url
rescue NoMethodError => e # raised if polymorphic_url fails
nil
rescue ActionController::RoutingError => e # raised if recognize_path fails
nil
end
这可能取决于您的设置,但是您不能找到相关控制器的路径,从而找出他是否知道表演动作吗?