我的页面上有一个过滤条。条形图应该始终存在,但是只有当我在详细信息页面上时,我才想显示一个链接< - 返回其中的列表。否则,过滤条应为空。在rails 3或3.1中最优雅的方法是什么?
由于 托马斯
答案 0 :(得分:1)
要返回上一页,您可以使用link_to "Back", :back
要显示或隐藏链接,您可以controller_name
和action_name
方法使用if/unless
条件。
答案 1 :(得分:0)
根据您的问题和评论,您有以下结构:
application.html.erb:
...
<section id="filter-bar">
<section id="filter"></section>
</section>
我看到有两种不同的选择如何有条件地包含您的链接:
if-then
application.html.erb
yield
中添加一个表示上下文的符号。以下是伪代码:
溶液
application.html.erb:
...
<section id="filter-bar">
<section id="filter">
<% if controller_name == 'user' && action_name == 'show' %>
<%= link_to "Back", :index %>
<% end %>
</section>
</section>
溶液
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.
第一个解决方案更简单,更简洁,但是如果包含或不包含某些内容的所有信息都在一个文件中。如果这种情况发生了很大变化,那么这可能是您应用程序中的热点。第二个是面向对象的,但也许更多的是改变和思考。但两者都适合你。