2017-09-12 7 views
1

En accédant à mon API REST sur des rails, je rencontre que l'intérieur des rails console cela peut se produireRuby on Rails: en utilisant la mise à jour à l'intérieur spectacle pour API REST

variable = Model.find(1) //Random id 
variable.update(:column => variable.column + 1) //my column is numeric 

mais, alors qu'il est possible sur la console un ne peut pas trouver une traduction à mon API ruby ​​pour cette méthode exacte

Des idées?

+0

Tout code que vous pouvez exécuter dans la console, vous pouvez exécuter dans le contrôleur. Pouvez-vous être plus précis dans votre problème? Ne pouvez-vous pas charger le modèle dans le contrôleur? Avez-vous du mal avec les routes? Cela ne devrait pas être très dur. De même, vous devez lancer '' '' variable.save''' après la mise à jour, sinon la modification ne sera pas sauvegardée. – nzajt

+0

@nzajt vous n'avez pas besoin d'appeler la mise à jour après l'enregistrement. En outre, oui, cette question n'a pas assez d'informations. –

+0

@maxpleaner J'ai dit que vous devez appeler '' 'save''' après' '' update'''. Je n'ai jamais dit que vous deviez appeler '' '' update''' après '' 'save'''. – nzajt

Répondre

0

On dirait que vous essayez d'incrémenter un compteur chaque fois que quelqu'un accède à votre méthode show dans un contrôleur. Cela peut être réalisé avec la méthode increment! de la classe ActiveRecord::Persistence:

instance = Model.find(params[:id]) 
instance.increment!(:attribute_to_increment, by = 1) 

Notez que le :attribute_to_increment doit être numérique.

Source: https://apidock.com/rails/v4.2.7/ActiveRecord/Persistence/increment%21

+0

wow! merci ça a marché –