Rails:redirect_to特定的Twitter Bootstrap选项卡

时间:2013-08-22 01:00:07

标签: ruby-on-rails ruby-on-rails-3 twitter-bootstrap

如何在特定页面上将重定向更改为特定的Twitter Bootstrap 标签?类似的东西:

def destroy
  @custom_article = CustomArticle.find(params[:id])
  @custom_article.destroy
  respond_to do |format|
    format.html { redirect_to documents_url[#specific_tab_here?] }
    format.json { head :no_content }
  end
end

谢谢!

更新

请参阅@ PeterWong和@ emm的答案,以获得解决方案。

4 个答案:

答案 0 :(得分:6)

这一点JS为我解决了这个问题:

$(function(){
  var hash = window.location.hash;
  hash && $('ul.nav a[href="' + hash + '"]').tab('show');
});

对于turbolinks它做了一些有点奇怪的事情,但由于这都是基于重定向的,所以不是问题。

答案 1 :(得分:3)

在您的控制器中:

def destroy
  redirect_to documents_url(tab: "specific_tab")
end

DocumentsController:

class DocumentsController < ApplicationController

  def index
    @tab = params[:tab]
  end
end

在html中:

<div class="tab-pane <%= @tab == "specific_tab" ? "active" : "" %>">

答案 2 :(得分:2)

这个怎么样?

redirect_to "#{documents_url}#specific_tab"

答案 3 :(得分:1)

对@emm解决方案的一个小调整,使用代码来使用turbolinks:

var ready;

ready = function() {
  var hash = window.location.hash;
  hash && $('ul.nav a[href="' + hash + '"]').tab('show');
};

$(document).ready(ready);
$(document).on('page:load', ready);