[id-ruby] Re: Simpan data ke lebih dari satu Tabel

2007-09-03 Terurut Topik Aditya Agustyana
--- In id-ruby@yahoogroups.com, pono_thea [EMAIL PROTECTED] wrote:

 Hallo semuanya, saya newbie Rails nih,
 Ini mungkin logika saya yang ga jalan atau imang bodoh he...
 Tentang simpan ke database lebih dari 2 tabel.
 
 1. Validasi (di setiap models)
 2. Jika sukses maka simpan ke databse
 saya menggunakan 
 if @user.save and @hobbies.save and @address.save
   pesan sukses simpan data
 end
 Tetapai tidak sesuai dengan yg saya harapakan, saya juga pernah pake
 OR, hasilnya tetap.
 Masalahnya :
 Jika menggunakan AND, error message akan tampil yang @user.save aja,
 sedangkan yang lain engga, kecuali klo @user.save sukse
 Klo pake OR dia baca dari belakang,
 
 Jika saya pake 
 if @user.save
   @hobbies.save
 end
 Gimana cara rollback nya.
 Help!

gmn kalo pake method valid?

if @user.valid? and @hobbies.valid? and @address.valid?
  flash[:notice]=data sudah tersimpan
  @user.save
  @hobbies.save 
  @address.save
else
  renders :acion=something
end

so ndak perlu pakek transaction kan ?




[id-ruby] Re: Simpan data ke lebih dari satu Tabel

2007-09-03 Terurut Topik Sirajuddin Maizir
[EMAIL PROTECTED] wrote:
 BTW kasus Anda ini dengan contoh diatas itu sebetulnya nggak 
 sinkron! Kalau cuma, hobbies, sih itu tinggal user has_many 
 hobbies through something aja selesai perkara, gak perlu repot2x 
 kita ngomong akali simpan data lebih dari satu tabel.

setuju dengan arie, klo kebutuhannya kyk gini sih gak perlu ribet2x
pake bikin transaction secara manual segala, harusnya rails dah bisa
ngatur secara otomatis.

 pono_thea wrote:
  Masalahnya :
  Jika menggunakan AND, error message akan tampil yang @user.save aja,
  sedangkan yang lain engga, kecuali klo @user.save sukse
  Klo pake OR dia baca dari belakang,
  

antara OR dan AND gampangnya gini aja (kondisi dari kiri ke kanan ),
- AND TIDAK TERPENUHI jika ditemukan kondisi YANG FALSE
- OR akan TERPENUHI jika ditemukan kondisi YANG TRUE

jadi jika anda menggunakan AND dan @user.save return false, maka
@hobbies.save dan @address.save tidak akan diperiksa

jika anda menggunakan OR, maka pesan sukses simpan data akan
ditampilkan jika salah satu dari ketiga kondisi tersebut terpenuhi.

anda dapat menguji logika anda cukup dengan 'membaca'-nya

AND - jika @user.save dan @hobbies.save dan @address.save maka ...
OR - jika @user.save atau @hobbies.save atau @address.save maka ...

btw aturan ini juga sering digunakan untuk optimasi supaya jumlah
pengecekan kondisi seminimal mungkin


~Sirajuddin Maizir~