gpt4 book ai didi

ruby-on-rails - 这是什么意思? *** "Delete"参数 ":destroy,"需要是一个数字 (Rails)

转载 作者:行者123 更新时间:2023-12-05 09:22:11 25 4
gpt4 key购买 nike

我正在尝试运行以下测试以销毁模型对象。

这是其中一个测试:

  it 'admin destroy' do
login_as(admin)
assert_difference('Topic.count', -1) do
debugger;
delete :destroy, id: topic.id
end
must_redirect_to forums_path
end

此测试未能销毁主题模型对象。放置调试器;在鳕鱼中产生这个;

enter image description here

这是什么'Delete argument destroy needs to be a number?'

我的论坛破坏了完美的测试工作。我不明白问题出在哪里。有谁知道这是什么意思。我在谷歌上放置了确切的错误,但它导致了一堆带有破坏参数错误问题的链接。帮助将不胜感激,谢谢。

--------编辑------------

*在我的 controller_test 文件的顶部,如果有人想知道的话,我让 FactoryGirl 的 let(:topic) { create(:topic) }

最佳答案

您的测试失败,因为您的主题对象是在首次引用 topic 时创建的,即在 assert_difference block 内:总体计数不会改变,因为主题同时创建并在 block 内销毁,因此净差为 0。

如果您将 let 更改为 let!,那么主题将更早创建并且您的测试应该通过。

您在 byebug 控制台的问题是因为 byebug 认为您正在尝试执行 byebug 的 delete 命令(删除断点)。您可以使用 e 命令强制将您输入的内容评估为 ruby​​ 代码。

关于ruby-on-rails - 这是什么意思? *** "Delete"参数 ":destroy,"需要是一个数字 (Rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28224930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com