Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何为非';t在models文件夹的根目录中?_Ruby On Rails_Factory Bot - Fatal编程技术网

Ruby on rails 如何为非';t在models文件夹的根目录中?

Ruby on rails 如何为非';t在models文件夹的根目录中?,ruby-on-rails,factory-bot,Ruby On Rails,Factory Bot,我想为我的服务器中的模型创建一个factory girl,它位于models文件夹中的一个文件夹中 我的树视图如下所示: ├── app | ├── models │ │ ├── xxx │ │ | ├── user.rb ├── spec │ ├── factories │ │ ├── xxx │ │ | ├── user.rb FactoryGirl.define do factory :user do username {

我想为我的服务器中的模型创建一个factory girl,它位于models文件夹中的一个文件夹中

我的树视图如下所示:

├── app 
|   ├── models
│   │   ├── xxx 
│   │   |   ├── user.rb
├── spec 
│   ├── factories
│   │   ├── xxx
│   │   |   ├── user.rb
FactoryGirl.define do
  factory :user do
    username { 'aaa' }
  end
end
我的工厂女孩看起来像:

├── app 
|   ├── models
│   │   ├── xxx 
│   │   |   ├── user.rb
├── spec 
│   ├── factories
│   │   ├── xxx
│   │   |   ├── user.rb
FactoryGirl.define do
  factory :user do
    username { 'aaa' }
  end
end
当我尝试生成用户时,我得到错误:

用户的未定义方法“新建”:模块


您的模型是在名称空间下定义的吗?例如,如果您的
app/models/xxx/user.rb
定义了一个类:

class XXX::User
  #...
end
然后在您的工厂中,您可以执行以下操作:

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