You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

纯Ruby环境下Delete方法无法运行,请求技术协助

问题修复指南

错误根源

报错 wrong number of arguments (given 0, expected 1) 是因为调用CustomerRepository#delete时未传入必需参数,同时仓库内的delete方法实现也存在用法错误。

具体修复步骤

1. 修正控制器的destroy方法

取消注释删除逻辑,同时将用户输入的ID转为整数(匹配仓库中ID的类型),确保正确传递参数:

def destroy
  list
  id = @customers_view.ask_user_to_delete(:id).to_i
  @customer_repository.delete(id)
  list # 删除后重新展示列表,确认结果
end

2. 修正仓库的delete方法

当前使用Array#delete的方式错误,delete方法需要传入具体对象;若要按条件删除,应改用delete_if,同时添加CSV保存逻辑:

def delete(id)
  @customers.delete_if { |customer| customer.id == id }
  save_csv # 同步删除结果到CSV文件
end

或者也可以先找到目标客户再删除:

def delete(id)
  customer = find(id)
  @customers.delete(customer) if customer
  save_csv
end

3. 确认用户输入类型

确保视图层返回的ID被转为整数,否则会因类型不匹配无法找到对应客户。

验证

修复后运行程序,执行删除操作时输入存在的客户ID,检查列表是否已移除该客户,同时查看CSV文件是否同步更新。


内容的提问来源于stack exchange,提问作者mustafaalomer711

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:40:32