2012-04-29 3 views
0

今日、私はshared/menu部分的にいくつかの変数を使いたいと思っていました。私はapplication_controllerいくつかのヘルパーメソッド(またはそのようなもの)のどこかに入れなければならないことを知っていますが、それは私のためには動作しません。私は私の見解で直接@pagecontents変数を定義する必要はありません他のコントローラからの部分レイアウトのアクセス変数

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

:ここに私の一時的な解決策(shared/_menu.html.haml)です! :/私の問題はapplication_controllerファイルにどこか@pagecontent変数を追加することですが、ときに私は例を試してみました:

def pagecontentforpartial 
    @pagecontents = Pagecontent.all 
end 

、その後、私はこの方法がnilである(しかし、そこにあるというエラーを得た私の部分図で、この変数にアクセスしようとしましたすでに多くのレコード!)誰かがこの問題を解決する方法を私に説明することができますか?

答えて

1

あなたは直接、それはあなたのshared/_menu.html.hamlrender方法

を使用して、部分的にオブジェクトを渡すことができます。

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

をそして、あなたはそれを表示する必要がある場合、あなたはあなたのビューでこのメソッドを使用することができます

render 'shared/menu', pagecontents: @pagecontents 

@pagecontentsは、もちろんコントローラからです。

+0

これは問題を解決しました、ありがとう! – mrmnmly

関連する問題