循环遍历每个属性和downcasing

时间:2017-04-02 14:42:15

标签: ruby-on-rails

我试图循环遍历datum的每个属性,并将下面的模型方法中的值包含在内。如果我将值推入check []数组,则downcase会起作用,但如果我尝试datum.attr_name = datum.attr_value.downcase则不会进行下采样。<​​/ p>

我如何实际下调每个属性值并将此下划线保存?

check = [] #used to troubleshoot
datum.attributes.each do |attr_name, attr_value|
  begin
    check.push(attr_name) #just used to troubleshoot
    check.push(attr_value.downcase) #just used to troubleshoot

    datum.attr_name = datum.attr_value.downcase #need help here

   rescue
   end 
end
datum.save
return check

Bonus:我目前正在使用数组进行故障排除,并通过错误消息打印出该数组。有什么更好的方法来解决这样的模型代码?

1 个答案:

答案 0 :(得分:1)

您可以这样做,并通过检查属性是否可以降级来摆脱begin...rescue

datum.attributes.each do |attr_name, attr_value|
  datum[attr_name] = attr_value.downcase if attr_value.respond_to?(:downcase)
end
datum.save