Ruby on Rails中的选项卡式菜单

时间:2011-12-05 12:06:07

标签: ruby-on-rails ruby layout

我正在为网站创建新的布局设计。在标题中有一个标签设计,我想在特定的div中呈现不同的部分。例如

<div class="pages">
<div id ="pages_header">
<div class="menu>
<ul>
<li>Tab1</li> (click to render partial)
</ul>    
</div>
</div>  

<div id="side_bar">

</div>

<div id="pages_content">
    <div class="content">
        <RENDER PARTIAL HERE>
        </div>
    </div>  

</div>

这里当你点击Tab1时,它会在“pages_content”

中呈现部分内容

我可以看到有很多方法可以做到这一点......例如我可以使用Bettertabs或http://www.simonecarletti.com/code/tabs_on_rails/

然而,最好的方法是什么,以便我可以提供外部URL,在正确的位置呈现正确的部分,以及更改页面标题以帮助SEO。例如www.mysite.com/products/view/product_1(将链接到div“pages_content”内部的product_1 partial)。理想情况下 - 使用AJAX加载这些部分以便它们可以制作动画会很棒吗?并且标签被突出显示为活动状态。

听到每个人对此的看法真的很有意思,正如我所说,我可以看到多种方法来做到这一点 - 只做好最好的方法!特别是对于SEO。

更新: link_to_remote或content_for会有用吗?

3 个答案:

答案 0 :(得分:0)

IMO最好的选择是使用标准锚点,然后在jQuery中添加函数click,用AJAX重新加载页面内容。如果您这样做,那么如果有禁用JavaScript的人访问您的网站,那么他/她就可以浏览页面(同样是关于网络蜘蛛)。仅使用AJAX在网站上导航不是一个好主意。

答案 1 :(得分:0)

link_to_remote在Rails 3中消失了,所以我不会使用它。您可以做的是,在jQuery-UI中创建选项卡视图,并让每个链接发出一个AJAX请求,要求show.js.erb并使用JavaScript来确定要添加到DOM的HTML。或者,如果命名和搜索引擎优化是非常重要的,你可以使用类似pjax_rails宝石的东西。

答案 2 :(得分:0)

最后我实际上使用了Jquery工具......这是一个很棒的Javascript库,允许在标签中使用锚定链接。