如果对象是可链接的,我有一个包含链接的通用部分。
使用polymorphic_url生成URL。如果polymorphic_url引发NoMethodError,那么我不包含该链接。
除非资源有更新或销毁操作但不是show动作,否则这种方法效果很好。在这种情况下,polymorphic_url会生成一个有效的URL,它只对GET无效。
有没有办法将polymorphic_url限制为特定的请求方法,或者确定返回的URL是否对GET有效的好方法?
答案 0 :(得分:1)
我再次看了一下recogn_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
答案 1 :(得分:0)
这可能取决于您的设置,但是您无法找到有问题的控制器的路径,从而找出他是否知道节目动作?