次のような URL エンコードされたリソースがあります。
http://myurl/users/Joe%20Bloggs/index.xml
これは、パスでユーザー ログインを使用する RESTful Web サービス用です。問題は、レールのコントローラーが %20 をデコードしていないように見えることです。次のエラーが表示されます。
ActionController::RoutingError (No route matches "/Joe%20Bloggs/index.xml" with {:method=>:post}):
私が実際にやろうとしているのは、2 つのオプションのいずれかを達成することです (authlogic を登録ハンドラーとして使用):
(できれば)ユーザーがスペースを含むユーザー名を登録できるようにし、これらがコントローラーに正しくルーティングされるようにします。デフォルトでは、Authlogic はスペースと @/ を許可します。キャラクター - 私がそれを機能させることができれば、私には問題ありません...
または、スペースを許可しないように authlogic を制限できます。私はこれを行うことができることを知っています:
.merge_validates_format_of_login_field_options...
しかし、新しい正規表現を提供し、失敗時にメッセージを返すための正しい構文が完全にはわかりません...
どんな提案でも大歓迎です!