轨道中的条件链接显示

时间:2011-10-02 20:44:52

标签: ruby-on-rails-3 ruby-on-rails-3.1

我的页面上有一个过滤条。条形图应该始终存在,但是只有当我在详细信息页面上时,我才想显示一个链接< - 返回其中的列表。否则,过滤条应为空。在rails 3或3.1中最优雅的方法是什么?

由于 托马斯

2 个答案:

答案 0 :(得分:1)

要返回上一页,您可以使用link_to "Back", :back

要显示或隐藏链接,您可以controller_nameaction_name方法使用if/unless条件。

答案 1 :(得分:0)

根据您的问题和评论,您有以下结构:

application.html.erb:
...
<section id="filter-bar"> 
  <section id="filter"></section> 
</section>

我看到有两种不同的选择如何有条件地包含您的链接:

  1. 在您的文件if-then
  2. 中执行application.html.erb
  3. 通过在yield中添加一个表示上下文的符号。
  4. 以下是伪代码:

    1. 溶液

      application.html.erb:
      ...
      <section id="filter-bar"> 
        <section id="filter">
          <% if controller_name == 'user' && action_name == 'show' %>
            <%= link_to "Back", :index %>
          <% end %>
        </section> 
      </section>
      
    2. 溶液

      application.html.erb:
      ...
      <section id="filter-bar"> 
        <section id="filter">
          <%= yield(:filter) %>
        </section> 
      </section>
      
      view.html.erb:
      <%- content_for :filter do %>
        <%= link_to "Back", :index %>
      <% end %>
      ...
      
      index.html.erb:
      // No content_for section in the file, so it will be empty here.
      
    3. 第一个解决方案更简单,更简洁,但是如果包含或不包含某些内容的所有信息都在一个文件中。如果这种情况发生了很大变化,那么这可能是您应用程序中的热点。第二个是面向对象的,但也许更多的是改变和思考。但两者都适合你。