对象的打印属性

时间:2019-08-29 10:16:59

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

我有2个班级:

class User < ApplicationRecord
  has_one :address
end

class Address < ApplicationRecord
  belongs_to :user

我需要编写代码,该代码将从数据库中打印属性值为100个用户的“邮政编码”。

关于这一点,我有一些代码,但是不确定这是否是解决问题的好方法:

@users = User.all
@users.limit(100).each do |user|
  puts "#{user.postcode}" 
end

谁有更好的主意?

2 个答案:

答案 0 :(得分:3)

我会使用pluck

puts User.limit(100).pluck('postcode')
# or
puts User.joins(:address).limit(100).pluck('addresses.postcode')

答案 1 :(得分:0)

Pluck最适合您的情况。

User.where(condition).pluck(:postcode)

(#where条件是可选的)

事件,如果您想获取带有邮政编码的其他列,则只需将其包含在pluck中即可。例如

User.where(condition).pluck(:id,:postcode)

(#在pluck内使用多列仅适用于rails4及以上)

相关问题