我有一个用户对象,我可以这样访问.. user.email, user.first_name
现在我想循环遍历每个并基于循环中的当前键返回一条消息,就像这样。
[user.first_name, user.email, user.last_name].each do |key|
puts "#{key} is required"
end
上述方法有效但循环遍历values
而不是fields
。所以将在下面执行此操作,但如何将用户添加到键并获取数组内的值?
[first_name, email, last_name].each do |key|
#inside here I want to prepend the user to the keys so that I can access like user.key
puts "#{user.key} is required"
end
如果这是一个字符串,我们可以连接但是如何处理这个作为方法调用?
答案 0 :(得分:2)
使用ActiveRecord,您可以通过[]
方法访问属性:
[ :first_name, :email, :last_name ].each do |key|
unless (user[key])
puts "#{key} is required"
end
end
这通常比send
方法更安全,因为它不会调用任意方法。
答案 1 :(得分:1)
您可以这样做:
user.send(key)
答案 2 :(得分:-1)
[first_name, email, last_name].each do |key|
puts user.send(key)
end