2013-08-22 2 views
3

Как изменить перенаправление на конкретную загрузочную страницу Twitter tab на определенной странице? Что-то вроде:Rails: redirect_to specific Twitter Bootstrap tab

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 

Спасибо!

UPDATE

ответы @ EMM о сочетании для решения См @ PeterWong-х и.

ответ

1

Как насчет этого?

redirect_to "#{documents_url}#specific_tab" 
+0

хорошая идея, но не кости: он идет в нужном месте в строке URL, но язычки не вести переписку. –

+0

Правильно ли указан URL-адрес с добавленным хэш-тегом? Если это так, это может быть проблема с javascript вместо рельсов. Вы правильно настроили? – PeterWong

+0

Да, это так, да, оно настроено правильно. Это может быть только проблема JS? Возможно, значения по умолчанию переопределяют перенаправление. –

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" : "" %>"> 
6

Этот бит JS установил ее для меня:

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

Это что-то странное с turbolinks, но поскольку это все на основе переадресации, это не проблема.

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); 
Смежные вопросы