错误的参数数量(2为0..1)

时间:2014-08-08 12:42:03

标签: ruby-on-rails ruby ruby-on-rails-4 rspec

我正在尝试为我的规范创建一个新的帐户对象。下面是代码,但它失败了。

@acc = FactoryGirl.create(:account, name: "Test", description: "Something about Test");
@user = FactoryGirl.create(:user, email: "test@test.com", password: nil, code: nil);

create_account = Account.create(@acc,@user)

错误

Failure/Error: create_account = Account.create(@acc,@user)
     ArgumentError:
       wrong number of arguments (2 for 0..1)

以下是我在控制器中创建的实际帐户。

@account = Account.create( account: { name: "#{params[:account][:name]}", description: "#{params[:description]}" }, user: { email: current_user.email })

为什么我的错误号码arguments错误。

2 个答案:

答案 0 :(得分:4)

你写错了。写如下: -

create_account = Account.create(account: @acc, user: @user)

在Rails中#create

  

属性参数可以是哈希HashArray。这些哈希描述了要创建的对象上的属性

答案 1 :(得分:3)

你应该:

Account.create(account: @acc, user: @user)

在你的规范中。您因为将两个参数传递给create方法而导致错误,而您最多应传递一个参数(如我的示例所示 - 您传递{account: @acc, user: @user}哈希。