2012-11-21 8 views

risposta

-2

Non è così chiaro che cosa stai chiedendo, ma se ho capito bene, si desidera qualcosa di simile:

class Address < ActiveRecord::Base 
    attr_accessible :street, :city, :zip 
    def update_null_attributes(hash) 
    update_attributes(hash.keep_if { |k,v| __send__("#{v}_was").nil? }) 
    end 
end 

Questo richiederà l'hash di attributi che si desidera aggiornare e passare solo quelli che erano originariamente nullo. Utilizza ActiveModel::Dirty per il metodo "# {v} _was".

+1

Chiunque abbia votato questa risposta, ti piacerebbe condividere perché? Non riesco a migliorare la risposta se non mi sbaglio. –

+0

Questo è stato probabilmente downvoted perché non è atomico. Se due risorse leggono lo stesso record in una volta, perderai la prima scrittura. Dovresti bloccare il record. – zach

Problemi correlati