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 に答える