Nasıl dinamik rayları bağlama ile ham bir güncelleme yapmak için sql
Bir güncelleştirme aşağıdaki gibi ham sql yürütmek istiyorum:
update table set f1=? where f2=? and f3=?
Bu SQL ActiveRecord::Base.connection.execute
, ama bu yönteme dinamik parametre değerleri geçirmek için nasıl bilmiyorum ile yürütülür.
Biri bana yardım edebilir mi?
CEVAP
API yöntemleri bu jenerik yapmak için ortaya Raylar gibi görünmüyor. Temel bağlantı, erişim ve yöntemler, örneğin MySQL için kullanmayı deneyin.
st = ActiveRecord::Base.connection.raw_connection.prepare("update table set f1=? where f2=? and f3=?")
st.execute(f1, f2, f3)
st.close
Eğer bunu yapmak için başka sonuçları (bağlantıları açık bırakmış, vs.) olmadığından emin değilim. Kenara gerçek sorgudan ne yaptığını görmek için normal bir güncelleme için Raylar kodları takip ediyorum.
Hazırlanan sorgular kurtarır seni küçük bir miktar zaman veritabanı, ama sürece yapıyorsun bu bir milyon kez bir satır, muhtemelen daha iyi sadece bina güncelleme ile normal Ruby değiştirme, örneğin
ActiveRecord::Base.connection.execute("update table set f1=#{ActiveRecord::Base.sanitize(f1)}")
ya da ziyaretçi gibi ActiveRecord kullanarak söyledi.
Nasıl div içeriğini daha büyük değil y...
Nasıl dava Vim / küçük harf duyarlı ar...
Nasıl twitter bootstrap menü hover yer...
Sekmeler arasında geçiş yapmak için na...
Nasıl derleme bağlama hatası günlük (F...