我有一个用户以前的“投票”的 ActiveRecord 关系......
@previous_votes = current_user.votes
我需要将这些过滤到仅针对当前“挑战”的投票,所以 Ruby 的select
方法似乎是做到这一点的最佳方式......
@previous_votes = current_user.votes.select { |v| v.entry.challenge_id == Entry.find(params[:entry_id]).challenge_id }
但是我还需要更新这些记录的属性,并且该select
方法将我的关系变成了一个无法更新或保存的数组!
@previous_votes.update_all :ignore => false
# ...
# undefined method `update_all' for #<Array:0x007fed7949a0c0>
如何像 select 方法一样过滤我的关系,但又不会失去使用 ActiveRecord 更新/保存项目的能力?
在谷歌周围寻找似乎named_scope
' 出现在类似问题的所有答案中,但我无法弄清楚他们可以具体完成我所追求的。