2014-05-10 2 views
0

내가 프로젝트 컨트롤러

나는 또한 project_updates 컨트롤러에게 내가 호출 할 수 있습니다 내 project_updates/뷰/쇼

이 변수 @project 인스턴스

을 말해봐 @project 변수에?

<% @project.categories.each do |cat| %> 
    <li><%= cat.name %></li> 
<% end %> 

아니면 몇 가지의 다른 컨트롤러에 다른 컨트롤러에서 인스턴스 변수를 가지고해야합니까 : 예를 들어 내가보기를 표시 난에 호출 할 수 있습니다 내 @project 인스턴스

project_updates에서

에 대한 범주를 방법?

+0

'project_updates' 컨트롤러에'@ project'도 정의해야 쇼 뷰 페이지에서 사용할 수 있습니다. – Pavan

답변

3

나는 이것을 단순화했지만 다른 컨트롤러에 변수가 있다고 생각할 수도 있지만 사실이 아닐 수 있습니다.

요청이 들어오고 컨트롤러로 라우팅되면 컨트롤러의 인스턴스가 만들어집니다. 그 다른 컨트롤러가 요청의 일부로 어떻게 인스턴스화되었는지 알지 못한다면 생각하는 변수는 실제로 존재하지 않습니다.

그러나 모델은 존재합니다 (데이터베이스 형식 이상). 그래서 기본적으로 당신이 모델에서 데이터를 추출하여 project_updates 컨트롤러에 생성 된 @project 변수를 가져와야한다고 생각합니다.

@project 변수를 다른 컨트롤러에서 어떻게 만듭니 까? 대부분의 경우이 컨트롤러에서 동일한 방법을 사용하여이 컨트롤러를 만든 다음 사용자가 볼 수 있습니다.