2014-12-09 65 views
1

我有一个控制器操作:创建哪个响应json格式和html。在rails中重定向

respond_to do |format| 
    if @pr.save 
    format.html {redirect_to(some_path)} 
    format.json {render json: @pr, status: :ok} 
    else 
    format.html {} 
    format.json {} 
    end 
end 

所以从角服务,我发个帖子请求,这个动作,如果成功,我想将用户重定向到some_path在我的服务器日志中我看到,重定向冰制成,但该页面不改变。

我该如何解决这个问题?我也使用turbo链接,所以我不想再次加载所有文件。

+1

例如,您应该使用'window.location'在客户端重定向您的用户。 – 2014-12-09 11:55:21

+0

重装资产怎么样? – John 2014-12-09 12:13:29

+0

你在浏览器网络检查器中的http响应中得到什么 – 2014-12-09 13:38:22

回答

1

可以这样做:

  1. 在你的控制器设置地点:

    format.json {渲染JSON:@pr,状态:OK,地点:SOME_PATH}

  2. 从JS你的头响应获取地点:

    头( '位置')

  3. 使用Turbolinks访问:

    Turbolinks.visit(header('Location'));

而现在您尚未加载资产。

0

你应该有一个路线,你要重定向你的用户。然后,在控制器可以调用页面

if(<Your Condition true/false>) 
    $location.path('/dashboard'); 

记住,你应该在你的控制器 添加依赖$位置或者你也可以到这里看看:如果您正在使用Turbolinks你

How to integrate Rails views with angularjs ng-view?