Ruby:为每个用户打印用户模型的一个属性

Bra*_*cil 2 ruby

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

#<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>,
Run Code Online (Sandbox Code Playgroud)

在控制台中,我做到了

  u = User.all
Run Code Online (Sandbox Code Playgroud)

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

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

   u.each do |f|
     f.email
   end
Run Code Online (Sandbox Code Playgroud)

但它只是再次打印了整个用户列表及其所有属性.

任何人都可以告诉我如何打印所有用户的电子邮件地址列表,省略其他属性.

old*_*god 5

您的控制台将在最后打印您键入的内容的结果.

因此,如果您编写u.each {anything},控制台将打印每个循环的结果.要明确打印东西,你需要使用输出函数(puts,p,pp,print等)

users = User.all
puts users.map(&:email).join("\n")
Run Code Online (Sandbox Code Playgroud)