0

所有,我正在尝试使用 Bootstrap Navbar 用户选项来控制向用户显示的帖子的过滤。

该模型包括一个“过期”字段,它是一个日期时间类型。

三个选项是:All(无过滤)、Open(仅显示未解决的问题)和 Closed(显示已关闭)。有没有办法在不定义三个不同index.html.erb变体(DRY 问题)的情况下做到这一点。如果@post.expired < Time.now.. 等,过滤器应该只显示已关闭的问题。

换一种说法——控制器可以“知道”用户选择了什么,尽管我正在使用的导航栏只是一个花哨的导航工具栏?

感谢您的任何建议。

4

1 回答 1

0

通常这是通过在请求中包含一个参数并在控制器中查找该参数来完成的。引导导航栏使用常规锚链接,因此您应该能够轻松地向它们添加参数(来自doc的修改示例):

<div class="navbar">
  <div class="navbar-inner">
    <a class="brand" href="/some_url">List</a>
    <ul class="nav">
      <li><a href="/some_url">All</a></li>
      <li><a href="/some_url?filter=open">Open</a></li>
      <li><a href="/some_url?filter=closed">Closed</a></li>
    </ul>
  </div>
</div>

您可以filter通过访问 的值来读取控制器中的参数params[:filter]

于 2013-02-12T06:52:21.097 回答