2016-11-25 1 views
0

내 필요합니다 : 나는 포럼 응용 프로그램의 테이블 카테고리가 있습니다. 내 app/views/layouts/application.html.erb에서 사용할 수있는 변수가 필요하므로 모든 페이지에서 모든 카테고리의 탐색 메뉴에 드롭 다운을 만들 수 있습니다.레일 글로벌 변수

가능한 한 이걸 본 한 가지 방법이 있지만 레일스를 처음 접했을 때 나는 그것이 최상의 것이라고 생각하지 않습니다. 즉 $categories = Category.all을 만듭니다. 하지만 내가 말했듯이 위험 해 보입니다.

내 문제를 해결하는 가장 좋은 방법은 무엇입니까?

답변

1

app/views/layouts/application.html.erb으로 데이터를 가져와야합니까?

컨트롤러가 있습니다.

ApplicationController이라고합니다. 당신의 ApplicationController 다음을 수행에서

:

class ApplicationController < ActionController::Base 
    before_action :set_categories 

    # stuff.. 

    private 

    def set_categories 
    @categories = Category.all 
    end 
end 

이제 응용 프로그램 레이아웃을 포함하여 응용 프로그램 코드에 걸쳐 @categories 인스턴스 변수에 액세스 할 수 있습니다.