我的Rails应用程序中有User
模型,我也有UserQueue
模型。
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位于User的名称空间(即User :: UserQueue)。然而,在我的应用程序中并非如此。我不能将模型命名为Queue,因为它是保留的。
有没有办法告诉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 :(得分:1)
我没有代表发表评论,但也会要求你发布你的工厂。
其他一些想法: 看看如何使用FactoryGirl处理assocations。我假设你不在Rails 4上因为:
attr_accessible :queue_privacy_id, :user_id