【发布时间】:2011-06-29 05:58:43
【问题描述】:
希望在这里有一个简单的问题,但我似乎一辈子都找不到答案。刚开始使用 RoR,但之前来自 ASP MVC。我在渲染局部变量不一定与主视图的变量相关联的局部视图时遇到问题。例如,对于一个博客,我试图呈现一个将链接到存档的侧边栏。
def sidebar
@blog_posts = Blog.all(:select => "created_at")
@post_months = @blog_posts.group_by { |m| m.created_at.beginning_of_month }
end
部分视图_sidebar如下:
<div class="archives">
<h4>Blog Archive</h4>
<% @post_months.sort.reverse.each do |month, posts| %>
<%= link_to "#{h month.strftime("%B %Y")}: #{posts.count}", archive_path(:timeframe => month) %>
<% end %>
</div>
我遇到的问题是,如果我只是在我的主视图中进行渲染“侧边栏”,则似乎不会调用该操作,并且@post_months 始终为零。是否可以直接从视图中调用操作并简单地渲染“侧边栏”?在 ASP MVC 中,我曾经只是将侧边栏设置为 ChildActionOnly 和主视图中的 Render.Action,但在 RoR 中,我完全一无所知。任何帮助表示赞赏!
【问题讨论】:
-
好问题,我自己也一直想知道这个问题,来自 symfony 背景,除了部分,还有组件(它们是带有支持它们的控制器代码的部分视图)
标签: ruby ruby-on-rails-3 action partial-views render