【发布时间】:2016-01-14 10:22:03
【问题描述】:
我在控制器规范中定义了这个代码块:
describe "DELETE #destroy" do
before(:each) do
@user = FactoryGirl.create :user
sign_in @user, store: false
delete :destroy, id: @user.auth_token
end
it { should respond_with 204 }
end
当我运行测试时,我收到错误 undefined method 'to_key' for {:store=>false}:Hash。
这是关联的控制器方法:
def destroy
user = User.find_by(auth_token: params[:id])
user.generate_authentication_token!
user.save
head 204
end
测试因错误而失败。
【问题讨论】:
-
你有什么问题?
-
这个方法签名是
sign_in(scope, resource),所以你不能给它传递哈希。 -
这里的documentation 定义了一个
sign_in(resource_or_scope, *args)方法签名。
标签: ruby-on-rails ruby-on-rails-4 rspec devise