今天我想在我的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
(但已经有很多记录!)有人可以解释我如何解决这个问题?
答案 0 :(得分:1)
您可以使用render
方法
这是你的shared/_menu.html.haml
:
- pagecontents.each do |pc|
%ul
%li
= link_to pc.title, pc
当您需要显示它时,您可以在视图中使用此方法
render 'shared/menu', pagecontents: @pagecontents
@pagecontents
来自控制器,当然