FactoryGirl error: uninitialized constant Post::user
FactoryGirl error: uninitialized constant Post::user
我在处理 FactoryGirl
时遇到了一个奇怪的命名空间错误。模型是 Post ⤞ User
。
代码是:
require 'factory_girl'
require 'active_record'
class User < ActiveRecord::Base ; end
class Post < ActiveRecord::Base
has_one :moderator, class_name: :user
end
::FactoryGirl.define do
factory :user do
name 'Ghghghgh Ghghg'
end
factory :post do
text 'Lorem ipsum etc'
association :moderator, factory: :user, strategy: :create
end
end
要求罚款,返回true
。现在,当我尝试生成一个实例时,出现此错误:
FactoryGirl.create :post
#⇒ NameError: uninitialized constant Post::user
我明显遗漏了什么?
问题出在这里:
has_one :moderator, class_name: :user
没有名为user
的class; class 的名字是 User
。你想要这个:
has_one :moderator, class_name: "User"
我在处理 FactoryGirl
时遇到了一个奇怪的命名空间错误。模型是 Post ⤞ User
。
代码是:
require 'factory_girl'
require 'active_record'
class User < ActiveRecord::Base ; end
class Post < ActiveRecord::Base
has_one :moderator, class_name: :user
end
::FactoryGirl.define do
factory :user do
name 'Ghghghgh Ghghg'
end
factory :post do
text 'Lorem ipsum etc'
association :moderator, factory: :user, strategy: :create
end
end
要求罚款,返回true
。现在,当我尝试生成一个实例时,出现此错误:
FactoryGirl.create :post
#⇒ NameError: uninitialized constant Post::user
我明显遗漏了什么?
问题出在这里:
has_one :moderator, class_name: :user
没有名为user
的class; class 的名字是 User
。你想要这个:
has_one :moderator, class_name: "User"