sbg Railers kita seringkali percaya begitu saja dengan method2 di Active
Record tanpa perlu liat log atau dikaji ulang
seperti misalnya sy punya kode begini
@profiles.update_attribute(:club,"Persib Bandung")
tapi di sisi lain sy punya kode ruby backgroundrb yg jalan seperti cron job
dalam selang waktu katakanlah 1 menit sekalii yg akan menggrab title
terakhir dari rss blog si user, dan lalu meng savenya ke kolom latest_blog
di tabel profiles tersebut
dan ketika kedua hal ini jalan secara bersamaan, seringkali data latest_blog
seolah-olah tidak ter-save, padahal proses grab berjalan lancar, usut punya
usut ternyata ini gara2 update_attribute yg ternyata dia tidak save 1 kolom,
tapi di semua kolom........ pantesan
jd gini kira2 prosesnya
@profiles.find(1) # select profile dengan id 1, katakanlah kolom
latest_blog="Persija dodol"
proses backgroundrb tersekeskusi ada data latest_blog baru lalu terupdatelah
latest_blog ="Persib Keren"
@profile.attribute("club","Persib bandung") # karena ini mengubah semua
kolom, dan sebetulnya kolom latest_blog dalam objek ini="Persija Dodol"
alhasil terjadilah proses update dan yg seharusnya latest_blog="Persib
keren" eh malah jadi "Persija dodol"
so pada akhirnya solusinya sy menggunakan update_all
Profile.update_all "club='Persib bandung'","id=1" ### aman deh, soalnya yg
terupdate benar2 satu kolom
sekedar curhat.....bahwa penggunaan method2 ActiveRecord yg tidak pada
tempatnya kalo tidak jeli bsia membawa bencana
en satu lagi mo nanya
Profile.find(:all) dengan Profile.find(:all,:select=>"club") lebih cepat
mana yak ....... sy ndak tau cara nge-benchmarknya hiks
--
blog : http://adityakircon.blogsome.com
ym : adit.prawirasoft
skype : adit_skype
i continue to fight, i continue to FIGHT (O2 - Orange Range)
[Non-text portions of this message have been removed]