2016-11-10 3 views
0

마지막 질문과 비슷합니다. 나는이 가이드를 첫 번째 레일 앱으로 따라 갔다. http://guides.rubyonrails.org/getting_started.htmlccap기사를 사이드 바에 표시합니다.

내 레이아웃보기에서 레이아웃을 만들었으며 사이드 바에 모든 기사를 나열하고 싶습니다. 나는 기사 제목의 루프와 링크를 포함하는 부분을 만들었다. 단지 기사 페이지에서 작동하는 것 같다 몇 가지 이유를 들어

는 ... 그래서 http://localhost:3000/articles

나는 내 컨트롤러에서 해당에 대한 데프을 생성하지 않았기 때문에 즉 가정? 나는 그것을 부분적으로 창조하는 방법에 대해 확신하지 못한다.

나의 이해는 내가

def index 
    @articles = article.all 
end 

처럼 뭔가를 갈 수하지만 _sidebar.html.erb있는 부분이기 때문에 나는 그것을 할 방법을 잘 모르겠어요 것입니다.

언제나 도움이 될 것입니다.

+0

. 부분보기에 '<%= params %>'을 추가하면 사용중인'controller'와'action'을 표시 할 수 있습니다. –

답변

0

레이아웃에서 사이드 바 부분을 렌더링한다고 가정합니다. 이 작업을 수행하는 가장 좋은 방법은 당신은 당신의 레일 응용 프로그램의 모든 행동하기 전에 fetch_articles 방법을 실행이

class ApplicationController < ActionController::Base 
    protect_from_forgery with: :excption 
    before_action :fetch_articles 

protected 
    def fetch_articles 
    @articles = Article.limit(10) # Gets 10 articles 
    end 
end 

이 같은 결과가 발생해야한다 귀하의 ApplicationController

before_action 필터를 만드는 것입니다. 새 동작이 렌더링 될 때마다 @articles 변수가 사이드 바 부분에 사용할 수 있음을 의미합니다.

+0

작동하지 않는 것 같습니다 ... 위의 사이드 바에 대한 코드를 삽입했습니다. 나는 간단한 것을 놓치고 있어야합니다. 나는 사이드 바를'%% render '/ shared/sidebar'%> '를 사용하여 추가하고있다. – trowse

+1

나는 바보이다. @articles를 복수로 사용한 적은 한번도 없었습니다. (도움을 주신 것에 감사드립니다. @chrisgooley! – trowse

0

당신은

module ApplicationHelper 
    include Radio::AttributeBuilder 

    def fetch_articles 
    @articles = Article.limit(10) # Gets 10 articles 
    end 
end 

에 코드를 삽입하고 도우미의 쇼,이 메소드를 호출 할 필요가 당신이 사용중인 의회 처리하는`controller` 또는`모르는 것 같다

관련 문제