Activeresource

Bonjour,

est-il possible depuis un client qui utilise activeresource, d’updater
tous les champs d’un model ?
J’arrive à mettre à jour un champs grâce à un find puis un save mais je
n’ai pas trouvé pour le faire en une seule fois sur tous les champs.

Le mercredi 16 septembre 2009 à 15:46 +0200, Frédéric Logier a écrit :

Bonjour,

est-il possible depuis un client qui utilise activeresource, d’updater
tous les champs d’un model ?
J’arrive à mettre à jour un champs grâce à un find puis un save mais je
n’ai pas trouvé pour le faire en une seule fois sur tous les champs.

Finalement j’ai fais :

h = Host.find(id)
h.attributes.update({“attribut1” => “toto”, “attribut2” => “tata”})
h.save

Le mercredi 16 septembre 2009 à 21:01 +0200, Frédéric Logier a écrit :

h = Host.find(id)
h.attributes.update({“attribut1” => “toto”, “attribut2” => “tata”})
h.save

Bon ça me saoule, le serveur reçoit en paramètres les anciennes valeurs
avec les nouvelles dans des array …

On 16 sep, 22:03, Frédéric Logier [email protected] wrote:

Finalement j’ai fais :

h = Host.find(id)
h.attributes.update({“attribut1” => “toto”, “attribut2” => “tata”})
h.save

Bon ça me saoule, le serveur reçoit en paramètres les anciennes valeurs
avec les nouvelles dans des array …

Bonjour Frédéric,

Je te recommande cette syntaxe qui ne nécessite pas de “save” :

my_host = Host.find_by_id(id)
my_host.update_attributes({“attribut1” => “toto”, “attribut2” =>
“tata”}) if my_host

Je devine ton besoin, mais il nous faudrait quelques bouts de code
pour pouvoir t’aider : le formulaire dans ta vue, la méthode de ton
controleur.


Julien Vignolles

Le mercredi 16 septembre 2009 à 13:23 -0700, Meshak a écrit :

Bonjour Frédéric,

Je te recommande cette syntaxe qui ne nécessite pas de “save” :

my_host = Host.find_by_id(id)
my_host.update_attributes({“attribut1” => “toto”, “attribut2” =>
“tata”}) if my_host

J’ai essayé, mais update_attributes n’existe pas dans ActiveRessource
http://api.rubyonrails.org/classes/ActiveResource/Base.html

En gros pour faire un update il faut faire un find puis modifier les
attributs 1 par 1 puis save…

Le 16 sept. 09 à 22:26, Frédéric Logier a écrit :

valeurs
J’ai essayé, mais update_attributes n’existe pas dans ActiveRessource
http://api.rubyonrails.org/classes/ActiveResource/Base.html

En gros pour faire un update il faut faire un find puis modifier les
attributs 1 par 1 puis save…

Si tu veux un update_attributes très simple sur ActiveRessource, c’est
assez simple :

class ActiveResource::Base

Method inspired by ActiveRecord

it is very simple, and probably won’t react as

ActiveRecord#update_attributes for complex cases and option uses
def update_attributes(attributes)
load(attributes).save
end

end


Arthur

Le jeudi 17 septembre 2009 à 11:26 +0200, Arthur Pétry a écrit :

def update_attributes(attributes)
load(attributes).save
end

end

En effet ça fonctionne, plus joli je trouve.

Le 17 sept. 09 à 12:56, Frédéric Logier a écrit :

En effet ça fonctionne, plus joli je trouve.

Si tu as d’autres question sur ActiveResource n’hésite pas, en ce
moment j’en bouffe :wink:


Arthur