top.location.href等效于redirect_to还是render?

时间:2012-04-30 07:00:54

标签: javascript ruby-on-rails

在Rails控制器中执行'top.location.href'javascript类型重定向是否有相同的方法?我想最终在iframe中的控制器中执行before_filter重定向。

1 个答案:

答案 0 :(得分:2)

我不相信有一个内置的Rails方法来实现你想要的东西。但是,您可以像这样呈现内联javascript:

class FooBarController < ApplicationController
  before_filter :inline_redirect

  def inline_redirect
    if some_condition
      render :layout => false, :inline => '<script>window.top.location = "http://someurl.com";</script>'
    end
  end
end

我认为这不是最好的做法。你应该真的创建一个视图并将javascript放在那里。请注意,某些用户可能已禁用javascript,因此您也需要处理该方案。