2014-01-29 2 views
1

레일스 애플리케이션에 User 모델이 있고 모델도 UserQueue입니다.네임 스페이스 충돌로 인해 RSpec을 테스트 할 수 없습니까?

User has_many UserQueuesUserQueue belongs_to User.

여기에 문제가 있습니다. UserQueue를 테스트하고 하나를 만들려고하면

let(:user) { FactoryGirl.create(:user) } 
before { @queue = user.user_queues.create(queue_privacy_id: 1) } 

다음과 같은 오류가 발생합니다.

NameError: 
    uninitialized constant User::user_queue 

내가이에서 이해하는 것은 RSpec에이 UserQueue는 사용자의 이름 공간 (즉, 사용자 :: UserQueue)에있을 것으로 예상하고있다. 그러나 그것은 내 애플 리케이션의 경우가 아닙니다. 큐가 예약되어 있기 때문에 모델 이름을 지정할 수 없습니다.

RSpec에 모델에 네임 스페이스가 없음을 알리는 방법이 있습니까?

여기 내 모델입니다.

class User < ActiveRecord::Base 
    attr_protected 

    has_many :user_queues, :class_name => "user_queue", :foreign_key => "user_id" 

    def name 
    "#{self.first_name} #{self.last_name}" 
    end 
end 


class UserQueue < ActiveRecord::Base 
    attr_accessible :queue_privacy_id, :user_id 

    belongs_to :user, :class_name => "User", :foreign_key => "user_id" 
end 
+0

후 귀하의 사용자 및 UserQueue 모델 – usha

+0

시도 : class_name을 => "UserQueue"' – zetetic

+0

@zetetic 어디 당신이 때문에 레일 4에없는 겠지? 전에 블록에? – eytanfb

답변

1

나는 담당자에게 의견이 없지만 공장에도 게시하도록 요청할 예정입니다.

어떤 다른 아이디어 : 당신이 FactoryGirl와 assocations을 처리 할 수있는 방법에 대해 살펴 보겠습니다. `

attr_accessible :queue_privacy_id, :user_id

+0

예. 이것은 레일 3 앱입니다. 하지만 협회 섹션에서 저를 연결 시켜서 해결했습니다. 감사 – eytanfb

관련 문제