1

如果对象是可链接的,我有一个包含链接的通用部分。

URL 是使用 polymorphic_url 生成的。如果 polymorphic_url 引发 NoMethodError,那么我不包含链接。

这通常效果很好,除非资源具有更新或销毁操作但没有显示操作。在这种情况下,polymorphic_url 生成一个有效的 URL,它只是对 GET 无效。

有没有办法将 polymorphic_url 限制为特定的请求方法,或者确定返回的 URL 是否对 GET 有效的好方法?

4

2 回答 2

1

我再看一下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
于 2012-09-05T15:13:54.080 回答
0

这可能取决于您的设置,但是您不能找到相关控制器的路径,从而找出他是否知道表演动作吗?

于 2012-09-05T08:13:22.153 回答