Ruby on rails rails-重定向回,除非上一页是艺术家页

Ruby on rails rails-重定向回,除非上一页是艺术家页,ruby-on-rails,ruby,redirect,controller,Ruby On Rails,Ruby,Redirect,Controller,我想重定向回上一页,除非上一页是我的“艺术家”控制器的“表演”动作 所以我猜它看起来像: if *previous page was artist show* redirect_to [track.artist, track] else redirect_to :back end if request.referer == artist_url(track.artist) redirect_to [track.artist, track] else redirect_to :b

我想重定向回上一页,除非上一页是我的“艺术家”控制器的“表演”动作

所以我猜它看起来像:

if *previous page was artist show*
  redirect_to [track.artist, track]
else
  redirect_to :back
end
if request.referer == artist_url(track.artist)
  redirect_to [track.artist, track]
else
  redirect_to :back
end

我的问题是-如何测试上一页是否是我的艺术家控制器的表演动作?

可能是
请求。你要找的是referer
?然后你可以这样说:

if *previous page was artist show*
  redirect_to [track.artist, track]
else
  redirect_to :back
end
if request.referer == artist_url(track.artist)
  redirect_to [track.artist, track]
else
  redirect_to :back
end

嗯-似乎是个好主意,但由于某种原因,这不起作用。出于某种原因,它没有通过测试(因此它不断重定向:返回,而不是艺术家,跟踪页面)。你知道为什么吗?对不起,我认为应该是艺术家的url,而不是艺术家的路径。我会更新答案。您还必须记住,任何参数都可能不匹配,因此您可以使用正则表达式来检查这一点。