带有Rails布局的动态边栏

时间:2010-08-18 10:48:45

标签: ruby-on-rails

例如,我想让我的侧边栏有几个动态内容。使用其他方法将导致我将查询代码放入View中,这根本不是一个好主意。我想在我的控制器中保留任何查询。

目前我知道有几个ff。方法:

渲染共享部分 - >无论在何处放置查询

render :partial => "shared/sidebar"

内容 - >评论中的其他详细信息

<%= yield :sidebar %>
<% content_for :sidebar do %>
  <a href="http://www.netscape.com">Netscape</a><br>
  <a href="http://www.lycos.com">Lycos</a><br>
  <a href="http://www.walmart.com">Wal Mart</a><br>
<% end %>

第三个是直接写入布局文件。

那我该怎么做呢?

2 个答案:

答案 0 :(得分:9)

如果你想在每个视图中使用它,你可以在application_controller中放置填充必要数据的方法,并使用before_filter来触发它。

before_filter :load_sidebar

def load_sidebar
  @data = Thingy.find(:all)
end

然后你的partial或content_for元素检查@data和进程。

答案 1 :(得分:1)

如果您想减少application_controller.rb中的代码数量,可能需要考虑使用Cells gem。

这将允许您在单独的单元格控制器中定义“查询”,并使用视图中的render_cell :sidebar, :myquery等内容为其呈现内容。