0

我想在布局页面中呈现部分,即 application.html.erb 和变量。我在布局文件夹“_fellowshi_sider.html.erb”中创建了部分视图,然后在 application.html.erb 中添加了以下代码

<%= render  "layouts/fellowship_sider", :entries => @entries  %>

我无法理解在哪里为 @entries 变量设置值。我在 application_controller 中编写了函数,但它不起作用。

4

2 回答 2

0

如果此部分在您的布局中,那么您可能@entries在每次调用时都需要该对象,因此请检查应用程序控制器中的方法是否实际被调用,控制器中的前置过滤器将为每个操作执行此操作。

应用控制器:

class ApplicationController < ActionController::Base
  before_filter :get_entries

  def get_entries
    @entries = Entry.all
  end
end

完成此操作后,您不需要将@entries变量传递给局部,您可以直接在局部视图中访问它。

布局:

<%= render "layouts/fellowship_sider" %>

_fellowship_sider.html.erb:

<% @entries.each do |entry| %>
  <%= entry.foo %>
<% end %>
于 2013-04-19T08:24:01.057 回答
0

试试这个:

<%= render :partial => "layouts/fellowship_sider", :locals => {:entries => @entries } %>

谢谢。

于 2013-04-19T09:19:06.510 回答