我正在尝试在rails中设置一个方法,以便如果参数的值为nil,则返回参数的名称。
我有一个名为Usages(gas,elec,biomass)的模型
我知道如何在ruby中执行此操作:
u = {elec: 100, gas: 200, biomass: nil}
t = %w(gas elec chp)
t.each do |t|
s=t.to_sym
if u[s] == nil
puts "#{t}"
end
end
,返回“生物量”
说我在Rails中有这个:
u = Usage.create(elec:100, gas:200)
我将如何返回“生物量”??
干杯!
答案 0 :(得分:4)
ActiveRecord模型上有一个attributes
哈希,它基于链接到该类的数据库表。空字段使用nil值映射,因此您可以像这样查找它们:
u.attributes.select {|_,v| v.nil? }.keys
答案 1 :(得分:1)
我认为您只想循环播放活动记录attributes
?
u = Usage.create(elec:100, gas:200)
u.attributes.each do |x|
if u.public_send(x).nil?
puts "#{x} is nil"
end
end