我的数据库中有很多用户使用这些属性,但是,我只想要每个用户的电子邮件地址
#<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)
但它只是再次打印了整个用户列表及其所有属性.
任何人都可以告诉我如何打印所有用户的电子邮件地址列表,省略其他属性.
您的控制台将在最后打印您键入的内容的结果.
因此,如果您编写u.each {anything},控制台将打印每个循环的结果.要明确打印东西,你需要使用输出函数(puts,p,pp,print等)
users = User.all
puts users.map(&:email).join("\n")
Run Code Online (Sandbox Code Playgroud)