Ruby on rails 如何执行ActiveRecord搜索并从数组中删除每个人(最多一条特定记录)?

Ruby on rails 如何执行ActiveRecord搜索并从数组中删除每个人(最多一条特定记录)?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我只是尝试执行一个方法,但在命中特定对象后失败了 知道该对象的email属性后,如何创建一个数组,并将返回限制为仅在该特定对象之后的那些对象 这是一个Rails 2项目如果您有一个数组,请尝试以下操作 irb(main):030:0> ary = [ 1, 2, 3, 4, 5, 6, 7 ] => [1, 2, 3, 4, 5, 6, 7] irb(main):031:0> ary.values_at( ary.index(4)..-1 ) => [4, 5, 6, 7

我只是尝试执行一个方法,但在命中特定对象后失败了

知道该对象的email属性后,如何创建一个数组,并将返回限制为仅在该特定对象之后的那些对象


这是一个Rails 2项目

如果您有一个数组,请尝试以下操作

irb(main):030:0> ary = [ 1, 2, 3, 4, 5, 6, 7 ]
=> [1, 2, 3, 4, 5, 6, 7]
irb(main):031:0> ary.values_at( ary.index(4)..-1 )
=> [4, 5, 6, 7]

这可能会有所帮助,因为where将返回id==id之后的所有记录

id = SomeModel.where( :email => 'email_you@kn.ow' ).first.id

SomeModel.where( "id > ?", id )
我想说:

your_array.take_while {|elt| elt.email != email }
或对于1.9.2:

your_array.slice_before{|elt| elt.email == email }.first

嗯……这是rails 3的方法吗?我应该注意到我使用的是Rails 2
。趁
工作正常时再做!天啊,你真是一个了解这个小宝石的ruby天才。看看所有的Enum模块宝藏真是太棒了:)现在嫉妒Rails 3,这是Rails 2的问题。谢谢你的回答!