[英]Ruby on rails - ActiveRecord query from array values
我正在建立一个测井方法。
在我的更新操作中,我将发布值的参数与实际db的值进行比较,以捕获更改并将其放入数组中
1°步骤 -创建一个数组,并使用更改名称modificati = Array.new填充
modificati.push("nome") if @clienti.nome != params[:clienti][:nome]
modificati.push('email') if @clienti.email != params[:clienti][:email]
..... the same for every field .....
2°步骤是仅记录更改的字段,因此我创建了一个具有更改的新数组
modifiche = Array.new
modificati.each do |m|
modifiche.push( "#{m} : #{@clienti.m} >> - ")
end
但这不起作用,有人可以帮我吗? 我的目标是将其放入数组:
“ nome:old_value_from_db >> new_value_from_post”
但错误是:
#的未定义方法'm'
谢谢大家
您需要从@client
调用属性(或方法),例如:
modificati.each do |m|
modifiche.push( "#{m} : #{@client.public_send(m.to_sym)} >> - ")
end
编辑:如果@client是活动记录对象,则可以在保存之前使用@client.changes
来跟踪对对象属性所做的任何更改。
编辑:填充第二个值,您可以在将其突变之前将@client重复:
client_before = @clienti.dup
.
.
.
# update @clienti, then
.
.
modifiche = []
modificati.each do |m|
modifiche.push( "#{m} : #{client_before.public_send(m.to_sym)} >> #{@clienti.public_send(m.to_sym)} ")
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.