1

さて、これはRails3アプリケーションの基本的なルーティングの質問です。contact_infosというコントローラーがあります。編集アクションでは、次の/ contact_infos / id/actionのようにルートを一致させたいと思います。私がこれを行っている理由は、特にajax機能のためです。これが私がこれまでにしたことです。このルートはうまくいきました。

match ':controller(/:id(/:action))(.:format)'

しかし、このルートは私のキャッチオールルートを破ります。

match ':controller(/:action(/:id))(.:format)'

そのため、私のアプリケーションには受け入れられません。

次の方法で特定のルートをターゲットにできることを知っています

  controller :contact_infos do

  end

しかし、他のcontact_infosアクションを壊さずに、編集アクションに対してのみ/ contact_infos / id/actionとしてURLを一致させる方法がわかりません。

何か案は?あなたが正しい答えを出せば、私は間違いなくあなたを評価します。ありがとう!アレックス

4

2 に答える 2

0

次の構文で使用してみてください...

  match "contact_infos/:id/edit" , :to => "contact_infos#edit", :as => 'contact_infos_edit'
于 2013-02-07T09:05:22.983 に答える
0

あなたの質問の一部ではありませんが、キャッチオールルートは非常に悪い考えであることに注意してください.

これは以前から危険であると考えられており、推奨されていません。これにより、アプリはすべての HTTP メソッドのアクションに応答できるようになります (たとえば、実際に PUT する必要があるものに対する GET など)。CSRFトークンはPUT、POST、およびDELETEリクエストにのみ必要であるため、これによりCSRF攻撃にさらされます..

利用可能にするすべてのリソースに対して常にルーティング ヘルパーを使用して明示的にルーティングし、アプリが正しい要求 (破棄アクションの DELETE 要求など) にのみ応答するようにする必要があります。

于 2013-02-07T09:23:26.360 に答える