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

Rails 5中筛选非GRACE状态还款记录的语法问题求助

修正你的Ruby筛选代码问题

嘿,你的代码里select的块写法出问题啦,这就是为啥筛选没生效,还是显示所有状态的记录。

原代码的问题

你写的select {[:state] != 'GRACE'}这个块有两个关键错误:

  • 没有把遍历到的每个还款记录对象(也就是repayment)传入块中,所以块里根本没用到当前要判断的记录
  • [:state]是一个包含符号的数组,它和字符串'GRACE'比较永远是true,相当于select把所有元素都保留了下来

正确的写法

你需要在select的块里接收每个还款对象,然后判断它的:state属性不等于'GRACE':

用for循环的正确版本

for repayment in mambu_repayments.select { |repayment| repayment[:state] != 'GRACE' } do
  # 这里写你的处理代码
end

更符合Ruby风格的写法(推荐用each代替for)

Ruby里更常用each来遍历集合,这样代码更简洁易懂:

mambu_repayments.select { |repayment| repayment[:state] != 'GRACE' }.each do |repayment|
  # 这里写你的处理代码
end

这样修改后,就只会筛选出状态不是GRACE的还款记录啦!

内容的提问来源于stack exchange,提问作者Dr.Gonzo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:55:15