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 に答える