我正在尝试在rails中设置一个方法,以便如果有一个参数的值为nil,则返回该参数的名称。
我有一个模型叫做Usages(天然气,电力,生物质)
我知道如何在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)我如何返回“生物质”??
干杯!
发布于 2013-02-22 06:13:12
ActiveRecord模型上有一个基于链接到类的数据库表的attributes散列。空字段映射为nil值,因此您可以像这样查找它们:
u.attributes.select {|_,v| v.nil? }.keys发布于 2013-02-22 06:13:10
我认为您只需要遍历活动记录attributes
u = Usage.create(elec:100, gas:200)
u.attributes.each do |x|
if u.public_send(x).nil?
puts "#{x} is nil"
end
endhttps://stackoverflow.com/questions/15013004
复制相似问题