Ton*_*ony 2 getter ruby-on-rails
我有一个拥有_may:people的MailingList模型
对于我的大多数应用程序,我只想让那些活跃的人
所以@mailing_list.people应该只返回活跃的人
在我的模型中,我做不到
def people
self.people.find_all{ |p| !p.activated_at.nil? }
end
Run Code Online (Sandbox Code Playgroud)
因为这一直在呼唤着自己.什么是ruby/rails自动过滤人的方式.另一个可能的问题是我认为self.people返回一个活动记录对象数组,self.people.find_all...返回一个数组.这将导致我的一些代码中断.这很容易修复,但有没有办法返回活动的记录对象?有选择会很高兴.
谢谢!
这是命名范围的完美示例:
class Person < ActiveRecord::Base
named_scope :active, :conditions => 'activated_at is not null'
end
Run Code Online (Sandbox Code Playgroud)
然后就叫它:
# equivalent to Person.find(:all, :conditions => 'activated_at is not null')
@active_people = Person.active
Run Code Online (Sandbox Code Playgroud)