2011-08-16 14 views
1

私のルートファイルに条件付きリダイレクトを行いたい。経路の条件付きリダイレクト

ユーザーは、自分のサイトのURLを短くすることができます。この短いURLは利用可能ですが長いURLが使用されている場合、私はいつもそれらを短いバージョンにリダイレクトしたいと思います。たとえば、ユーザーはfubar.mysite.comに行くが、fubarsite.comは利用可能である - > fubar.mysite.comからfubarsite.comにリダイレクトする。

利用可能な短いURLをデータベースに保存します。

私はこれをルートでやりたいと思いますが、これが可能かどうかわかりません。私は制約アプローチを試しましたが、ブロック内のリダイレクトの仕方はわかりません。

constraints(Redirect) do 
#need to redirect here 
end 

答えて

3

私はあなたのルートファイルにこれを行うべきではないと思っています。おそらく、アプリケーションコントローラにbefore_filterを設定してそこのチェックをしたいかもしれません。短いURLが利用可能な場合は、リダイレクトを行います。あなたはそれを行うためにあなたのルートファイルにすべてのルートをキャッチする必要があります。

+0

これはどうやってやったのですか?これをroutesファイルに移すことができたらと思っています。お返事ありがとうございます – Tarscher

+1

@ Tarscherのリダイレクトはあなたのコントローラの部分に属しています、ルートファイルは、コントローラからパスへのマップです。 IMHOリダイレクトを行う正しい場所はコントローラです。 – Fabio

関連する問題