Activerecord映射到数组

时间:2014-03-04 00:56:27

标签: ruby-on-rails arrays

我正试图从我的用户表中取出所有内容并将其发送给邮箱黑猩猩进行订阅。

我需要从User.all转到

[{:email => {:email => "example@domain.org"}, 
  :merge_vars => {:FNAME => "First name", :LNAME => "Last name"}
}]

我正在尝试用map执行此操作,但我正在努力,最干净这样做的任何想法?

2 个答案:

答案 0 :(得分:1)

subscription_array = User.all.collect do |user| 
 {
  :email => {:email => user.email}, 
  :merge_vars => {:FNAME => user.first_name, :LNAME => user.last_name}
 }
end

答案 1 :(得分:1)

users_array = []
User.all.find_each {|u| users_array << {:email => u.email, :merge_vars => {:FNAME => u.first_name, :LNAME => u.last_name} }

我选择使用find_each,这是一种更有效的加载你的收藏方式。

http://api.rubyonrails.org/classes/ActiveRecord/Batches.html