【问题标题】:FactoryGirl error: uninitialized constant Post::userFactoryGirl 错误:未初始化的常量 Post::user
【发布时间】:2015-09-20 05:07:30
【问题描述】:

我在处理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

我缺少什么明显的东西?

【问题讨论】:

    标签: ruby-on-rails ruby rspec factory-bot factory


    【解决方案1】:

    问题出在这里:

    has_one :moderator, class_name: :user
    

    没有名为user 的类;班级名称是User。你想要这个:

    has_one :moderator, class_name: "User"
    

    【讨论】:

    • 哦,是的,谢谢。我把事情搞混了,继续以FactoryGirl-like 的方式编写 AR 代码。新鲜的眼睛是一种强大的力量。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    相关资源
    最近更新 更多