ruby-on-rails – 如何检查值是否在数组中找到
发布时间:2020-12-16 19:53:57 所属栏目:百科 来源:网络整理
导读:我想执行一个if条件,如果在值数组(@associated_linked_pub)中找到linkedpub.LPU_ID,请执行一些操作. 我尝试了以下,但语法不正确. 任何建议是最受欢迎的.感谢很多 % for linkedpub in Linkedpub.find(:all) % % if linkedpub.LPU_ID IN @associated_linked_pu
我想执行一个if条件,如果在值数组(@associated_linked_pub)中找到linkedpub.LPU_ID,请执行一些操作.
我尝试了以下,但语法不正确. 任何建议是最受欢迎的.感谢很多 <% for linkedpub in Linkedpub.find(:all) %> <% if linkedpub.LPU_ID IN @associated_linked_pub %> # do action <%end%> <%end%> 解决方法
可以使用Array#include?
所以… if @associated_linked_pub.include? linkedpub.LPU_ID ... 编辑: 如果@associated_linked_pub是ActiveRecord对象的列表,请尝试改为: if @associated_linked_pub.map{|a| a.id}.include? linkedpub.LPU_ID ... 编辑: 仔细看你的问题,看起来你正在做的是非常低效和无法缩小的.相反,你可以做… 对于Rails 3.0: Linkedpub.where(:id => @associated_linked_pub) 对于Rails 2.x: LinkedPub.find(:all,:conditions => { :id => @associated_linked_pub }) Rails将自动创建SQL IN查询,如: SELECT * FROM linkedpubs WHERE id IN (34,6,2,67,8) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |