Ruby 为什么我得到FactoryGirl错误的参数数错误?

Ruby 为什么我得到FactoryGirl错误的参数数错误?,ruby,rspec,factory-bot,Ruby,Rspec,Factory Bot,在非rails应用程序中有FactoryGirl的奇怪行为。获取错误的参数数错误…不知道为什么 gideon@thefonso ~/Sites/testing (master)$ rspec spec /Users/gideon/.rvm/gems/ruby-1.9.3-p194/gems/factory_girl-4.1.0/lib/factory_girl/syntax/default.rb:6:in `define': wrong number of arguments (1 for 0)

在非rails应用程序中有FactoryGirl的奇怪行为。获取错误的参数数错误…不知道为什么

gideon@thefonso ~/Sites/testing (master)$ rspec spec
/Users/gideon/.rvm/gems/ruby-1.9.3-p194/gems/factory_girl-4.1.0/lib/factory_girl/syntax/default.rb:6:in `define': wrong number of arguments (1 for 0) (ArgumentError)
    from /Users/gideon/Sites/testing/spec/factories.rb:1:in `<top (required)>'
工厂.rb

FactoryGirl.define :user do |u|
    u.email     "joe@website.com"
    u.password  "joe009"
end
user.rb

  class User
    attr_accessor :email, :password
  end
spec_helper.rb

require 'rubygems'
require 'bundler/setup'
require 'capybara'
require 'rspec'
require 'capybara/rspec'
require 'json'

require 'capybara/dsl'
# Capybara configuration
Capybara.default_driver = :selenium
Capybara.app_host = "http://www.website.com"

require 'factory_girl'
# give me ma stuff
FactoryGirl.find_definitions

require "rspec/expectations"

include Capybara::DSL
include RSpec::Matchers

如果这是一个非rails应用程序,您必须首先创建一个
User
类。我不确定您是否必须使用带有名称、密码和电子邮件的实例变量,但您肯定必须在某个地方定义该类


查看Github上的文件了解更多信息。

答案::user是一个保留字。将其更改为:stuff…现在可以正常工作。

尝试使用

试试这个

FactoryGirl.define do
    factory :user do |u|
        u.email     "joe@website.com"
        u.password  "joe009"
    end
end

您的用户类在哪里定义?如果数据库模型运行在Rails环境中,则应该由ActiveSupport自动加载。如果没有发生这种情况,可能是
app/models/user.rb
不存在,或者您需要手动
require
相关模型。
FactoryGirl.define do
  factory :user do
    email "joe@website.com"
    password "joe009"
  end
end
FactoryGirl.define do
    factory :user do |u|
        u.email     "joe@website.com"
        u.password  "joe009"
    end
end