5

私は現在、RoR のハンドルを取得しようとしています。コントローラーに 2 つの文字列を渡しています。1 つはランダムな 16 進文字列で、もう 1 つは電子メールです。このプロジェクトは、データベースでの簡単な電子メール検証用です。私が抱えている問題は、自分のページをテストするために以下のようなものを入力するときです:

http://signup.testsite.local/confirm/da2fdbb49cf32c6848b0aba0f80fb78c/bob.villa@gmailcom

私のparamsハッシュで得ているの:email'bob'. 試合がまったく機能しなくなる可能性があるため、私はの.gmailと外を残しました.com

私のルーティングの一致は次のとおりです。

match "confirm/:code/:email" => "confirm#index"

これは、私が必要とするものに対して十分に単純に思えます。私は取引が何であるか、そして実際にどのように答えを探すかを理解しようとするのに苦労しています. ヘルプやガイダンスをいただければ幸いです。

4

2 に答える 2

7
match "confirm/:code/:email" => "confirm#index", :email => /.*/

また、ここでメソッドを設定する方が良いgetと思います

get "confirm/:code/:email" => "confirm#index", :email => /.*/
于 2011-04-24T02:46:09.073 に答える
5

あなたの問題は、Rails がフォーマット仕様 (または.villa@gmailcomなど) として解釈しようとしていることです。私の知る限り、標準的な回避策(または少なくとも私が使用する回避策)は、これをルートに追加することです:.html.json

:requirements => { :email => /.*/ }

これにより、Rails は何を:email含むかについて巧妙にならないように騙されます。

「@」や「.」でググっても何も見つからなくても不思議ではありません。有用なことは何もしません。

于 2011-04-24T02:46:42.200 に答える