我使用以下代码重定向到创建后表单所在的位置:
if @book.save
redirect_to :home_index
我也有bootstrap垂直选项卡,其中所有选项卡共享相同的url(home / index)。每个选项卡上都有一个表单,用于创建并列出已创建的内容。
因此,在第一个选项卡上创建之后,我回到了第一个选项卡。
我的问题是,当我在第二,第三等选项卡上创建时,我也回到了第一个选项卡。我想停留在第三个标签上。
虽然与此相关的一些问题,但它们都是针对jQuery,PHP等的,而且,仅了解Rails,我发现它们很难使用。如何使用Rails做到这一点?
如果有用的话,引导程序中的标签代码:
<div class="row">
<div class="col-3">
<div class="nav flex-column nav-pills" id="v-pills-tab" role="tablist" aria-orientation="vertical">
<a class="nav-link active" id="v-pills-home-tab" data-toggle="pill" href="#v-pills-home" role="tab" aria-controls="v-pills-home" aria-selected="true">Home</a>
<a class="nav-link" id="v-pills-profile-tab" data-toggle="pill" href="#v-pills-profile" role="tab" aria-controls="v-pills-profile" aria-selected="false">Profile</a>
<a class="nav-link" id="v-pills-messages-tab" data-toggle="pill" href="#v-pills-messages" role="tab" aria-controls="v-pills-messages" aria-selected="false">Messages</a>
<a class="nav-link" id="v-pills-settings-tab" data-toggle="pill" href="#v-pills-settings" role="tab" aria-controls="v-pills-settings" aria-selected="false">Settings</a>
</div>
</div>
<div class="col-9">
<div class="tab-content" id="v-pills-tabContent">
<div class="tab-pane fade show active" id="v-pills-home" role="tabpanel" aria-labelledby="v-pills-home-tab">...</div>
<div class="tab-pane fade" id="v-pills-profile" role="tabpanel" aria-labelledby="v-pills-profile-tab">...</div>
<div class="tab-pane fade" id="v-pills-messages" role="tabpanel" aria-labelledby="v-pills-messages-tab">...</div>
<div class="tab-pane fade" id="v-pills-settings" role="tabpanel" aria-labelledby="v-pills-settings-tab">...</div>
</div>
</div>
</div>
答案 0 :(得分:0)
我可以想到几种方法来实现这一目标:
触发标签创建,然后使用新标签的html从控制器进行响应,并将其插入DOM,然后在收到ajax响应时在客户端上切换至该标签。或...
javascript通过检查html查询字符串来暴露选项卡。例如www.mypage.com?tab=foo_tab在页面加载时打开foo_tab。创建后,在控制器中,重定向到具有查询中指定的所需选项卡的页面。
我会选择第一种方法,b / c的用户体验会比新页面加载更好。