2

次のような URL があります: /hello/world#/lol/backbone

ルビーで、完全なパス全体にアクセスしたいと思います。私は通常、このようなことをします:request.fullpathしかし、それは返されるだけ/hello/worldで、#/lol/backbone/

しばらくグーグルでした。見つからないようです。

4

1 に答える 1

3

サーバー コードでフラグメントを取得できません。URL フラグメント ( #/lol/backbone) はクライアント側の問題です。ブラウザはフラグメントを解釈しますが、サーバーには送信しません。

フラグメントが必要な場合は、リンクを少し JavaScript でインターセプトしてパラメーターに変換する必要があります。サーバーは次のようなものを見ることができます。

/hello/world?frag=/lol/backbone

からフラグメントを引き出すことができますparams[:frag]。これはもちろん、JavaScript リンク インターセプターが実行されることを前提としていますが、これは保証されていないため、サーバー側のコードは欠落に備えて準備する必要がありますparams[:frag]

于 2012-08-24T01:55:15.733 に答える