我正在尝试为我的规范创建一个新的帐户对象。下面是代码,但它失败了。
@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
错误。
答案 0 :(得分:4)
create_account = Account.create(account: @acc, user: @user)
在Rails中#create
属性参数可以是哈希的
Hash
或Array
。这些哈希描述了要创建的对象上的属性。
答案 1 :(得分:3)
你应该:
Account.create(account: @acc, user: @user)
在你的规范中。您因为将两个参数传递给create
方法而导致错误,而您最多应传递一个参数(如我的示例所示 - 您传递{account: @acc, user: @user}
哈希。