Rails:rails 应用程序控制器中的条件重定向

Gar*_*ows 5 ruby ruby-on-rails

我从两个不同的视图调用的控制器中有一个操作。在每种情况下,我都希望操作重定向回单击链接的页面。目前我正在这样做......

在这个视图中,我传递了一个这样的参数......

%a.showtooltip#wprofile{:href => idea_vote_up_path(@idea, :source => 'idea'),  :title => 'Awesome idea - vote up !', }
Run Code Online (Sandbox Code Playgroud)

并在控制器中...

if params[:source] == 'idea'
  redirect_to idea
else
  redirect_to ideas_path
end
Run Code Online (Sandbox Code Playgroud)

这工作正常,但感觉不优雅,尤其是当它最终出现在几个动作中时。有没有更好的办法?

Bon*_*ngs 5

您可以通过以下方式重写它:

redirect_to params[:source] == 'idea' ? idea : ideas_path
Run Code Online (Sandbox Code Playgroud)

如果要重定向回页面(刷新当前页面)

redirect_to request.referer
Run Code Online (Sandbox Code Playgroud)