레일스 애플리케이션에 User
모델이 있고 모델도 UserQueue
입니다.네임 스페이스 충돌로 인해 RSpec을 테스트 할 수 없습니까?
User has_many UserQueues
및 UserQueue 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
후 귀하의 사용자 및 UserQueue 모델 – usha
시도 : class_name을 => "UserQueue"' – zetetic
@zetetic 어디 당신이 때문에 레일 4에없는 겠지? 전에 블록에? – eytanfb