d0a98042 | 8 May 06:18

[Rails] Masalah dengan 1 form yang menambah row di 2 tabel

Halo semua..saya lagi belajar Rails dan masalah dikit. Mohon bantuan
teman2.

Saya punya tabel users dan addresses. 1 user hanya punya 1 address.

di models/user.rb
class User < ActiveRecord::Base
has_one :address

validates_presence_of :username, :firstname, :passwd, :message => "can't
empty";
validates_format_of :email, :with =>
/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
validates_confirmation_of :passwd
enddi models/address.rb
class Address < ActiveRecord::Base
has_many :province
belongs_to :user
enddi views/user/new.rb (sebagian), form ini akan post ke user/create
...
<div>
<label for="user_gender">Gender</label>
<%= select :user, :gender, {"Male" => "m", "Female" => "f"} -%>
</div>
<div>
<label for="user_birthdate">Birth date</label>
<%= date_select :user, :birthdate, :order => [:day, :month, :year],
:include_blank => true -%>
</div>
<div>
(Continue reading)

d0a98042 | 8 May 08:15

Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

Wah dijawab sendiri deh..saya udah dapat solusinya..buat yang punya
masalah kaya gini..tanya aja saya

Trims.

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

<*> Kunjungi *arsip milis* id-ruby di
    http://groups.yahoo.com/group/id-ruby/messages
    http://www.mail-archive.com/id-ruby-hHKSG33TihhbjbujkaE4pw <at> public.gmane.org/
    http://rubyurl.com/Q8DD
    http://news.gmane.org/gmane.comp.lang.ruby.region.indonesia

<*> Baca peraturan id-ruby sebelum posting
    http://rubyurl.com/gay1

<*> Ikutilah Jajak Pendapat ID-Ruby
    http://rubyurl.com/3CCt

<*> Links ID-Ruby
    http://rubyurl.com/n96r

<*> Database ID-Ruby
    http://rubyurl.com/Iw3u

<*> Kunjungi Situs Resmi Ruby Indonesia
(Continue reading)

Arie Kusuma Atmaja | 8 May 15:26

Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

--- In id-ruby@..., "d0a98042" wrote:

> Wah dijawab sendiri deh..saya udah dapat solusinya..buat yang punya
> masalah kaya gini..tanya aja saya
> 
> Trims.

Gimana solusinya? sama codes2nya.

http://www.ruby-lang.org/id

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

<*> Kunjungi *arsip milis* id-ruby di
    http://groups.yahoo.com/group/id-ruby/messages
    http://www.mail-archive.com/id-ruby-hHKSG33TihhbjbujkaE4pw <at> public.gmane.org/
    http://rubyurl.com/Q8DD
    http://news.gmane.org/gmane.comp.lang.ruby.region.indonesia

<*> Baca peraturan id-ruby sebelum posting
    http://rubyurl.com/gay1

<*> Ikutilah Jajak Pendapat ID-Ruby
    http://rubyurl.com/3CCt

<*> Links ID-Ruby
(Continue reading)

d0a98042 | 9 May 05:25

Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

Memang desain table dimasalah saya redundant, tapi ini cuma test case
yang saya coba selesaikan.

Masalah saya kemarin mungkin banyakj ditemui sama rails-noob macam saya :)

Solusinya jadi gini :

class Address < ActiveRecord::Base
	has_one :province
	belongs_to :user
...

class Province < ActiveRecord::Base
	belongs_to :country
	belongs_to :address
...

class User < ActiveRecord::Base
	has_one :address, :dependent => :destroy
...

class UserController < ApplicationController
...
	def create
		@user = User.new(params[:user])
		@address = @user.create_address(params[:address])
		if @user.save
			redirect_to :action => 'list'
		else
			render :action => 'new'
(Continue reading)

Arie Kusuma Atmaja | 9 May 17:54

Re: Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

2008/5/9 d0a98042 <d0a98042@...>:

> Memang desain table dimasalah saya redundant, tapi ini cuma test case
> yang saya coba selesaikan.

wah jangan mau 'mengalah' dulu kalau argumennya belum dikeluarkan
semua ;-) kita harus bisa belajar nih

> Solusinya jadi gini :
>
> class Address < ActiveRecord::Base
>        has_one :province
>
> class Province < ActiveRecord::Base
>        belongs_to :address

hei yakin nih province belongs to address ? Seharusnya = province
has_many :addresses, nah si address belongs_to :province dong.
bukan begitu? ;-)

Blog http://tinyurl.com/2bjgvn

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

<*> Kunjungi *arsip milis* id-ruby di
    http://groups.yahoo.com/group/id-ruby/messages
(Continue reading)

irfaniYangBaikHati | 10 May 14:52

Re: Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

utk di ruby istilahnya raise exception bukan throw

sebagai warga id-ruby gunakan istilah ruby yg baik dan benar

[Non-text portions of this message have been removed]

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

<*> Kunjungi *arsip milis* id-ruby di
    http://groups.yahoo.com/group/id-ruby/messages
    http://www.mail-archive.com/id-ruby-hHKSG33TihhbjbujkaE4pw <at> public.gmane.org/
    http://rubyurl.com/Q8DD
    http://news.gmane.org/gmane.comp.lang.ruby.region.indonesia

<*> Baca peraturan id-ruby sebelum posting
    http://rubyurl.com/gay1

<*> Ikutilah Jajak Pendapat ID-Ruby
    http://rubyurl.com/3CCt

<*> Links ID-Ruby
    http://rubyurl.com/n96r

<*> Database ID-Ruby
    http://rubyurl.com/Iw3u

(Continue reading)

ANdreas Aditya | 8 May 07:24

Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

Kalo boleh sedikit usul gimana kalo tabel users dan addreses digabung jadi satu tabel... biar ga
redundant..  

@ndreas

d0a98042 <d0a98042@...> wrote:                             Halo semua..saya lagi belajar
Rails dan masalah dikit. Mohon bantuan
 teman2.

 Saya punya tabel users dan addresses. 1 user hanya punya 1 address.

 di models/user.rb
 class User < ActiveRecord::Base
 has_one :address

 validates_presence_of :username, :firstname, :passwd, :message => "can't
 empty";
 validates_format_of :email, :with =>
 /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
 validates_confirmation_of :passwd
 enddi models/address.rb
 class Address < ActiveRecord::Base
 has_many :province
 belongs_to :user
 enddi views/user/new.rb (sebagian), form ini akan post ke user/create
 ...
 <div>
 <label for="user_gender">Gender</label>
 <%= select :user, :gender, {"Male" => "m", "Female" => "f"} -%>
 </div>
(Continue reading)

Arie Kusuma Atmaja | 8 May 15:37

Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

--- In id-ruby@..., ANdreas Aditya wrote:

> Kalo boleh sedikit usul gimana kalo tabel users dan addreses digabung jadi satu tabel... 
biar ga redundant..  

Nah menarik ;-)) penggunaan has one dari level data modelling, lalu sampai urusan 
desain database, hingga koding (baik dari hanya di model, atau hingga controller dan 
view yg berantakan) ini bisa jadi perdebatan panjang. Kalau saya bilang ya tergantung, 
jaman dulu ketika rails nggak kayak jaman tu poin eou sekarang sampai2x itu model 
diakali agar tidak bisa di mass assignment (alasannya macam2 dari lame sampe nyentil 
hacker suka mass assignment segalalah), trus kalo 2.0 bisa di config di environment yg 
diinginkan agar bisa ngupdate sesuai field yang diinginkan aja. singkat cerita ya tetap 
bergantung sikon, kalo user cuma punya dikit field sih gpp 1 doang, tapi kalo sampe 
pouanjang banyak banget ya boleh lah mau bikin pisah2x, trus tapi nanti musti pintar-
pintar ngaturnya biar nggak gendut itu refer ada blog post bagus banget dari josh susser 
baru2x ini kalo kita sampe punya model file lebih dari 40 ato 50 biji gitu musti 
digimanain strateginya dst. 

selamat bersenang-senang sama ruby, semoga sukses. ;-)

> @ndreas

http://www.rubyflow.com

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

(Continue reading)

Arie Kusuma Atmaja | 8 May 15:31

Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

--- In id-ruby@..., "d0a98042" wrote:

> class Address < ActiveRecord::Base
> has_many :province

ehm ;-) yakin address has_many :province (atau bahkan :provinces) ? saya jadi curiga itu 
apa ga seharusnya malah belongs_to :province tuh

> waktu saya coba, row di table user memang bertambah tapi di table
> address tidak

ya terang aja cuma address karena object ybs saja yang Anda raba. Ini bisa diakali dengan 
before filter bila Anda senang berurusan dgn resourceful URL dan controller atau bisa 
juga Anda akali aja taroh callback before save di model yg Anda perlukan. selesai.

> saya dapat error
> The error occurred while evaluating nil.createdari error tersebut saya
> rasa ada kesalah di
> @user.address.create(params[:address])tapi saya ga tau harus gmn lagi.
> mohon pencerahan teman-teman.
> 
> Trims.

http://www.ruby-lang.org/id

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)
(Continue reading)

muhammad nizham | 9 May 05:50

Re: Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

imho, untuk update:
@user = User.find(params[:id])
@user.first_name = "Nizham"
@user.last_name = "Tanjung"
if @user.save
.....

Tapi (demi simplicity 'n malesity), kenapa nggak pake ./script generate scaffold ajah?
kan udah otomatis CRUD nya.

----- Original Message ----
From: d0a98042 <d0a98042@...>
To: id-ruby@...
Sent: Friday, May 9, 2008 10:25:12 AM
Subject: [id-ruby] Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

Memang desain table dimasalah saya redundant, tapi ini cuma test case
yang saya coba selesaikan.

Masalah saya kemarin mungkin banyakj ditemui sama rails-noob macam saya :)

Solusinya jadi gini :

class Address < ActiveRecord: :Base
has_one :province
belongs_to :user
...

class Province < ActiveRecord: :Base
belongs_to :country
(Continue reading)

Booking Heaven | 9 May 07:24

Re: Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

@user = User.find(params[ :id])
@user.update_attributes(:first_name=>"Reinhart",:last_name=>"Teapoci")

Nice!!
Reinhart
http://teapoci.blogspot.com

--- On Thu, 5/8/08, muhammad nizham <nzm_bl@...> wrote:
From: muhammad nizham <nzm_bl@...>
Subject: Re: [id-ruby] Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel
To: id-ruby@...
Date: Thursday, May 8, 2008, 8:52 PM

    
            imho, untuk update:

@user = User.find(params[ :id])

@user.first_ name = "Nizham"

@user.last_name = "Tanjung"

if @user.save

.....

      ____________________________________________________________________________________
Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

(Continue reading)

d0a98042 | 9 May 08:17

Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

Makasih semuanya! masalah saya selesai :)

def update
		@user = User.find(params[:id])
		if @user.update_attributes(params[:user]) &&
@user.address.update_attributes(params[:address])		
			redirect_to :action => 'list'
		else			
			@provinces = Province.find(:all)
			@countries = Country.find(:all)
			render :action => 'edit'
		end
	end

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

<*> Kunjungi *arsip milis* id-ruby di
    http://groups.yahoo.com/group/id-ruby/messages
    http://www.mail-archive.com/id-ruby-hHKSG33TihhbjbujkaE4pw <at> public.gmane.org/
    http://rubyurl.com/Q8DD
    http://news.gmane.org/gmane.comp.lang.ruby.region.indonesia

<*> Baca peraturan id-ruby sebelum posting
    http://rubyurl.com/gay1

<*> Ikutilah Jajak Pendapat ID-Ruby
(Continue reading)

adhe kania | 9 May 09:51

Re: Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

Nimbrung nanya boleh yaa..

Kalo untuk kasus kaya gini :

>   if @user.update_attributes(params[:user]) &&
> @user.address.update_attributes(params[:address])
> .
>

@user.update_attributes(params[:user])  => true
@user.address.update_attributes(params[:address])  => false

kan hasilnya 'false'.. Tapi yang 'user'nya jadi udah keupdate yaa di
databasenya??
Kalo maunya kalo address ga keupdate, user juga ga keupdate (begitu juga
sebaliknya) gimana caranya??

Makasi..

-ad-


[Non-text portions of this message have been removed]

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

(Continue reading)

Arie Kusuma Atmaja | 9 May 17:44

Re: Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

2008/5/9 muhammad nizham <nzm_bl@...>:

> Tapi (demi simplicity 'n malesity), kenapa nggak pake ./script generate scaffold ajah?
> kan udah otomatis CRUD nya.

kalau saya pribadi kalau membandingkan cepat-cepatan mana pakai
scaffold atau nggak, justru cenderung jauh lebih cepat saya koding
nggak pakai scaffold.

Di lapangan nyata, saya melihat scaffold ini tersedia hanya sebagai nice spike.

Blog http://tinyurl.com/2bjgvn

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

<*> Kunjungi *arsip milis* id-ruby di
    http://groups.yahoo.com/group/id-ruby/messages
    http://www.mail-archive.com/id-ruby-hHKSG33TihhbjbujkaE4pw <at> public.gmane.org/
    http://rubyurl.com/Q8DD
    http://news.gmane.org/gmane.comp.lang.ruby.region.indonesia

<*> Baca peraturan id-ruby sebelum posting
    http://rubyurl.com/gay1

<*> Ikutilah Jajak Pendapat ID-Ruby
    http://rubyurl.com/3CCt
(Continue reading)

Leo Laksmana | 9 May 09:57

Re: Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel


------Original Message------
From: adhe kania
To: id-ruby@...;
Subject: Re: [id-ruby] Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

@user.update_attributes(params[:user])  => true
@user.address.update_attributes(params[:address])  => false

Pake block transaction aja. BTW ini kalo di controller yah?

User.transaction do
  begin
    @user.update_attributes(params[:user])
    @user.update_attributes(params[:address])
  end
end

--
http://beol.laksmana.com/
http://twitter.com/beol

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

<*> Kunjungi *arsip milis* id-ruby di
    http://groups.yahoo.com/group/id-ruby/messages
(Continue reading)

Leo Laksmana | 9 May 10:19

Re: Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

2008/5/9 Leo Laksmana <beol@...>:

>
>
> Pake block transaction aja. BTW ini kalo di controller yah?
>
> User.transaction do
>  begin
>     @user.update_attributes(params[:user])
>     @user.update_attributes(params[:address])
>  end
> end
>
>
Spesifically dalam problem ini:
def update
  User.transaction begin
    begin
      @user = User.find(params[:id])
      @user.update_attributes!(params[:user])
      @user.address.update_attributes!(params[:address])
    end

     redirect_to :action => 'list'
  end
rescue Exception
  @provinces = Province.find(:all)
  @countries = Country.find(:all)

  render :action => 'edit'
(Continue reading)

Arie Kusuma Atmaja | 9 May 17:49

Re: Re: [Rails] Masalah dengan 1 form yang menambah row di 2 tabel

2008/5/9 Leo Laksmana <beol@...>:

> Perhatikan update_attributes! bukan update_attribute, agar throw exception.

+1

ada tulisan menarik dari david black mengenai pengaturan/kebiasaan
Rubyist ketika menggunakan tanda seru di ujung metode tsb. Jadi bila
kita membuat metode (ambil contoh seperti create!, update_attributes!,
dst yg mengandung tanda seru diujung) maka _should_ berperilaku
berjaga throw Exception selain juga "destruktif" dalam artian
mengganti obyek berdasarkan pada result yang diperoleh. Saya pribadi
selalu pakai yang ini dan sangat merekomendasikan untuk serius memakai
yang pakai tanda seru ini baik dalam memakai ataupun membikin kelas
dan obyek sendiri.

Blog http://tinyurl.com/2bjgvn

------------------------------------

ID-Ruby
Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala varian Ruby (JRuby, Rubinius,
IronRuby, XRuby), dan program yang dibuat dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)

<*> Kunjungi *arsip milis* id-ruby di
    http://groups.yahoo.com/group/id-ruby/messages
    http://www.mail-archive.com/id-ruby-hHKSG33TihhbjbujkaE4pw <at> public.gmane.org/
    http://rubyurl.com/Q8DD
    http://news.gmane.org/gmane.comp.lang.ruby.region.indonesia

(Continue reading)


Gmane