2012-05-18 2 views
0

나는 User has_one Shop & Shop has_many Branches입니다.왜 내 레일 연결이 컨트롤러에서 작동하지 않지만 뷰에서 작동합니까?

나는이 수행 할 때 : 나는에 @branches를 폐기하는 경우, 그러나

undefined method `branches' for nil:NilClass 

Application Trace | Framework Trace | Full Trace 
app/controllers/users_controller.rb:13:in `show' 

:

class UsersController < ApplicationController 
    def show 
    @user = User.find(params[:id]) 
    @shop = @user.shop 
    @branches = @shop.branches 
    end 
... 

보기의 @user & @shop 예 변수 작동하지만 @branches 나에게 오류를 제공 컨트롤러 :

class UsersController < ApplicationController 
    def show 
    @user = User.find(params[:id]) 
    @shop = @user.shop 
    end 
... 

....하고 뷰에서 이것을 사용

@shop.branches 

는 .... 그것을 작동합니다! 보기에 항상 @shop.branches을 사용하는 것이 다소 힘들어서 @branches을 사용하는 것을 선호합니다.

답변

2

메시지에 @shop이 컨트롤러에 없음으로 표시됩니다. 보기에서 동일한 요청이있는 경우 컨트롤러 뒤에 다른 곳의이 설정되어 있음을 의미합니다.

+0

고마워요! '@ stores.nil?'을'@ branches'에 추가했습니다. 이제 작동합니다! –