大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 如何在模型中使用命名范围来对付项目数组?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
范围:recenT_Books,lambda {| since_dt | {:conditions => {:created_at> = since_dt}}}
但是当我有一系列项目时,如何进行类似的查询,例如如果我想知道是否有任何记录与[date1,date2,date3等]数组中的日期匹配,该怎么办?
我认为必须有一个collect / inject / SELEct / map y方法才能做到,但我不确定从哪个读取它们.
Book.where(:author_id => [1,7,42])
生成一个带有WHERE子句的SQL查询,类似于:
WHERE "author_id" IN (1,42)
您可以像设置正常条件一样在范围内利用此功能:
class Book < .... # Rails 3 scope :by_author,lambda { |author_id| where(:author_id => author_id) } # Rails 2 named_scope :by_author,lambda { |author_id { :conditions => {:author_id => author_iD} } } end
然后,您可以将一个ID或一组ID传递给by_author,它将起作用:
Book.by_author([1,42])
以上是大佬教程为你收集整理的ruby-on-rails – 如何在模型中使用命名范围来对付项目数组?全部内容,希望文章能够帮你解决ruby-on-rails – 如何在模型中使用命名范围来对付项目数组?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。