2012-10-25 21 views
11

Veritabanımda ads_counter adlı alana sahibim ve bu reklam oluşturulduğunda değerini artırmak zorundayım.Veritabanında artan sayaç

Özel bir yöntem yazmayı ve bu verilerden sorumlu denetleyicide kullanmayı denedim, ancak çalışmadı. Veritabanındaki bir alanın değerini artırmak için herhangi bir yerleşik yöntem var mı?

+0

sağlanan sayısına göre artırır! Teşekkür ederim! – felipeclopes

+0

Başka bir yol buldu zaten update_attributes.Thanks – Avdept

+0

Bunu yapmanın en iyi yolu, update_attributes validasyonları ve maddeleri çağırdığından beri artımı aramaktır. Arttırma komutanı tam olarak istediğin gibi yapar. – felipeclopes

cevap

22

Evet, ActiveRecord'unuzda arayabileceğiniz increment yöntemi var.

Başvuru için

: increment

Düzenleme: otomatik tarafından artırır

instance.increment!(:ads_counter) 

:

kullanmak doğrudan increment!

Bunu kullanabilir bu şekilde kaydetmek yapmak için 1

instance.increment!(:ads_counter, <number>) 

Bu sizin yapısını paylaşırsanız daha fazla bilgi vermek size yardımcı olabilecek

+0

benim yönteminde bir bağlantı var Büyük, tam cevap: docs + gerçek örnek saygı + + güzel biçimlendirilmiş hakkında biraz daha fazla. Teşekkürler. –

1

Bir özniteliği artırır ve

your_object.increment!(:ads_counter) 

kontrolörünüzün show yönteminde bu kodu koy kayıt kaydeder yöntemi increment! var.

+0

Bu yöntem sadece 1 ile artırılıyor, ya da ek params var mı? – Avdept

+0

'your_object.increment! 'I kullanabilirsiniz (: ads_counter, 42)'; Benim cevabım – Baldrick