2011-02-02 2 views
2

前のページが私の「アーティスト」コントローラーの「表示」アクションでない限り、前のページにリダイレクトしたいと思います。rails - 前のページがアーティストページだった場合を除き、リダイレクトされます

だから私はそれのようになります推測:

if *previous page was artist show* 
    redirect_to [track.artist, track] 
else 
    redirect_to :back 
end 

私の質問をされて - 前のページには、私のアーティストコントローラーのshowアクションだった場合、どのようにテストしますか..?

答えて

7

おそらくrequest.refererはあなたが探しているものですか?次に、あなたは何かのように言うことができます:

if request.referer == artist_url(track.artist) 
    redirect_to [track.artist, track] 
else 
    redirect_to :back 
end 
+0

hmm - 良いアイデアのようですが、何らかの理由でそれが動作していない。何らかの理由でテストに失敗しています(リダイレクトされますので、アーティスト、トラックページとは逆です)。これがなぜ起こっているのでしょうか? – tiswas

+0

申し訳ありません私はartist_urlではなくartist_urlであるべきだと思います。私は答えを更新します。すべてのパラメータが一致しない可能性があるので、正規表現を使用してこれを確認することもできます。 –

+0

woo - 完璧!ありがとうございました! – tiswas

関連する問題