0

今天我想在我的shared/menu部分中使用一些变量。我知道我应该在application_controller某个辅助方法(或类似的方法)中放置一些东西,但它对我不起作用。这是我的临时解决方案(shared/_menu.html.haml):

- @pagecontents = Pagecontent.all
- @pagecontents.each do |pc|
  %ul
    %li
      = link_to pc.title, pc

我不想@pagecontents直接在我的视图中定义变量!:/我的问题是在@pagecontent某处添加变量到application_controller文件但是当我尝试例如:

def pagecontentforpartial
  @pagecontents = Pagecontent.all
end

然后尝试在我的局部视图中访问这个变量我得到一个错误,这个方法是nil(但已经有很多记录了!)有人可以解释我如何解决这个问题吗?

4

1 回答 1

1

您可以使用render方法直接将对象传递给您的部分

这是你的shared/_menu.html.haml

- pagecontents.each do |pc|
%ul
  %li
    = link_to pc.title, pc

而当你需要展示它的时候,你可以在你的视图中使用这个方法

render 'shared/menu', pagecontents: @pagecontents

@pagecontents来自控制器,当然

于 2012-04-29T22:17:55.273 回答