2

我的数据库中有一堆具有这些属性的用户,但是,我只想要每个用户的电子邮件地址

#<User id: 1, email: "email@yahoo.com", encrypted_password: "", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 0, current_sign_in_at: nil, last_sign_in_at: nil, current_sign_in_ip: nil, last_sign_in_ip: nil, created_at: "2012-09-03 09:14:01", updated_at: "2012-09-03 09:14:01", name: nil, confirmation_token: nil, confirmed_at: nil, confirmation_sent_at: nil, unconfirmed_email: nil, opt_in: nil, invitation_token: nil, invitation_sent_at: nil, invitation_accepted_at: nil, invitation_limit: nil, invited_by_id: nil, invited_by_type: nil>,

在控制台中,我做了

  u = User.all

它打印了所有用户及其属性。

现在,要获取我尝试过的每个电子邮件地址

   u.each do |f|
     f.email
   end

但它只是再次打印了整个用户列表,以及他们的所有属性。

谁能告诉我如何打印所有用户的电子邮件地址列表,而忽略其他属性。

4

1 回答 1

5

您的控制台将在最后打印您键入的结果。

因此,如果您编写 u.each { any },控制台将打印每个循环的结果。要显式打印内容,您需要使用输出函数(puts、p、pp、print 等)

users = User.all
puts users.map(&:email).join("\n")
于 2012-09-21T08:26:46.200 回答