1

に追加@categories = Category.allしてみましたApplicationController

しかし、ビューの 1 つをクリックしても機能しませ@categoriesnil

_navigation.html.erbフォルダーのパーシャルにメニューを生成したいと思いlayoutsます。

@categoriesmy にない場合、すべてのビューで使用されるパーシャルで使用されるインスタンス変数をどこで宣言しますApplication Controllerか?

ありがとう。

4

2 に答える 2

2

すべてのビューで使用する場合は、ヘルパーを定義できます。

def all_categories
 @categories ||= Category.all
end

all_categories を使用して、すべてのビューでアクセスできます。

アップデート:

コントローラーで all_categories を定義したい場合は、helper_method を使用してください

helper_method :all_categories
于 2012-12-18T07:27:00.520 に答える
1

アプリケーションコントローラーで before_filter を使用すると、呼び出すアクションの前に任意のメソッドが実行されます

class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :some_action

  def some_action
   @categories = Category.all
  end 
end

あなたはこれを読むべきです

于 2012-12-18T07:20:58.220 に答える