可以在从db加载的对象上使用ActiveRecord方法吗?

时间:2013-06-10 23:14:06

标签: ruby-on-rails ruby-on-rails-3 activerecord

我想将“find_all_by ...”方法应用于已经由User.all检索的记录。这可能吗?此时我得到一个“未定义的方法`find_all_by_type”错误:

rows = User.all
rows.each do |r|
  result = rows.find_all_by_type(r.type)
end

1 个答案:

答案 0 :(得分:1)

加载记录后,您可以对集合使用任何Enumerable方法。你在这里寻找的是select

rows = User.all
rows.each do |r|
  result = rows.select {|row| row.type == r.type}
end

虽然我确实想知道你在这里尝试做什么。如果这是伪代码或简化示例,那么您可以在上面应用我的代码。尽管如此,你可能会更好:

rows = User.all.group_by(&:type)