如何在 rails 中为不在模型文件夹根目录中的模型定义工厂女孩?

How to define factory girl in rails for model that isn't in root of the models folder?

我想在我的服务器中为模型文件夹中的模型创建一个工厂女孩。

我的树视图看起来像:

├── app 
|   ├── models
│   │   ├── xxx 
│   │   |   ├── user.rb
├── spec 
│   ├── factories
│   │   ├── xxx
│   │   |   ├── user.rb

我的厂妹长这样:

FactoryGirl.define do
  factory :user do
    username { 'aaa' }
  end
end

当我尝试构建用户时出现错误:

undefined method `new' for User:Module

你的模型是在命名空间下定义的吗?例如,如果您的 app/models/xxx/user.rb 定义了 class:

class XXX::User
  #...
end

那么在你的工厂里你可以做:

FactoryGirl.define do
  factory :user, class: XXX::User do
    username { 'aaa' }
  end
end