我有一个术语模型,其中包括:title属性(仅是标题),以及:accepted和:pending属性(它们是布尔值,用于指示术语是否已被主持人批准)。在我的索引页面上,条款按其:accepted属性进行拆分,并存储在名为@accepted和@pending的数组中。
可以有多个具有相同:title的术语,但是,只能接受其中之一。
我没有成功尝试通过:title属性过滤两个数组,因此如果一个术语出现在@approved数组中,则它不会出现在@pending数组中。
所以,如果我有
@accepted = [{title: "TERM1", accepted: true, pending: false}]
@pending = [{title: "TERM1", accepted: false, pending: true}, {title: "TERM2", accepted: false, pending: true}, {title: "TERM2", accepted: false , pending: true}]
过滤后,@ pending仅包含第二个和第三个对象(即所有不具有标题“ TERM1”的对象)。
我将如何执行此过滤器?
答案 0 :(得分:1)
尝试这个
accepted_terms_titles = @accepted.map { |t| t[:title] }
@pending.reject! { |t| accepted_terms_titles.include?(t[:title]) }
@pending
数组中过滤出标题包含在accepted_terms_titles
数组中的术语