Hehe lagi2 terselesaikan sebelum ada yang jawab.. ternyata patchnya belum 
sempurna untuk version rails 2.2.2 , dan ada versi patch yang lebih update. 
Bagi yang menemukanmasalah serupa bisa liat 
http://rails.lighthouseapp.com/projects/8994/tickets/765-primary_key-option-for-belongs_to

 Regards,
Marcelino Ponty
"Ad Maiorem Dei Gloriam"






________________________________
From: marcelino ponty <[email protected]>
To: id ruby <[email protected]>
Sent: Friday, February 27, 2009 9:27:09 PM
Subject: [id-ruby] help: rails has_many association tanpa kolom 'id'


tman2 yang udah expert railsnya.. saya pemula ni.. mohon bantuan, mau tanya 
mengenai rails association. . stuck banget T_T

sebelumnya, saya pake rails version 2.2.2, 
activerecord 2.2.2 juga, udah di patch secara manual (copy paste koding) dari 
patch berikut
http://rails. lighthouseapp. com/attachments/ 40039/primary_ key_for_belongs_ 
to.diff 
sehingga bisa make option ':primary_key' pada belongs_to

jadi saya ingin mengkoneksikan 2 buah table yang saya buat tidak dari migration 
(dibuat dari sql query)
kedua table tersebut primary keynya tidak menggunakan id dan di dalam table ga 
ada column id sama sekali
tablenya adalah:

create table mhs
(
nim char(2) primary key,
nama varchar(20),
)

create table nilaimhs
(
matakuliah    varchar(10),
nilai    integer,
mhs_nim    char(2) foreign key references mhs(nim),
)

saya masukkan record sehingga kedua table sbb:

tabel mhs:
----------
nim  nama
----------
10    adi
20    yos

table nilaimhs
------------ --------- ---
matakuliah nilai mhs_nim
------------ --------- ---
mat         10    10
fisika      9     10
mat         6     20
fisika      5     20
bahasa      4     20

saya sudah set database.yml (pokoknya koneksi ga ada masalah) lalu setelah 
mencari dengan susah payah mengenai relationship has_many tanpa menggunakan 
'id' pada foreign key dan primary key, maka saya generate model di rails dengan 
nama model 'mhs' dan 'nilaimhs' sebagai berikut :

class Mhs < ActiveRecord: :Base
set_table_name "mhs" 
has_many :nilaimhs, :class_name => "Nilaimhs", :primary_key => :nim, 
:foreign_key => :mhs_nim
end

class Nilaimhs < ActiveRecord: :Base
set_table_name "nilaimhs"
belongs_to :mhs, :class_name =>"Mhs", :primary_key => :nim, :foreign_key => 
:mhs_nim, 
end

saat saya coba akses

Nilaimhs.first. mhs
>>#<Mhs:0x477267c>
masih bisa, alias lancar. 

namun jika sebaliknya saya akses
Mhs.first.nilaimhs

maka terjadi looping yang takterhingga (sampai aptana rad rails saya 
notresponding) dan akhirnya berhenti namun di browser nampak error sbb:

SystemStackError in NilaiController# index 
stack level too deep

c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
dynamic_finder_ match.rb: 18:in `initialize'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
dynamic_finder_ match.rb: 4:in `new'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
dynamic_finder_ match.rb: 4:in `match'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
base.rb:1425: in `respond_to? '
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
associations/ association_ collection. rb:357:in `method_missing'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
associations/ association_ proxy.rb: 184:in `set_belongs_ to_association_ for'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
associations/ has_many_ association. rb:113:in `construct_scope'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
associations/ association_ collection. rb:366:in `method_missing'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
associations/ association_ proxy.rb: 184:in `set_belongs_ to_association_ for'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
associations/ has_many_ association. rb:113:in `construct_scope'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
associations/ association_ collection. rb:366:in `method_missing'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
associations/ association_ proxy.rb: 184:in `set_belongs_ to_association_ for'
c:/ruby/lib/ ruby/gems/ 1.8/gems/ activerecord- 2.2.2/lib/ active_record/ 
associations/ has_many_ association. rb:113:in `construct_scope'
....
dan seterusnya

saya bingung banget, ini salahnya di mana ya? apakah pendefinisian model saya 
dengan primary key dan foreign key saya sudah benar atau belum? apakah ada yang 
pernah menggunakan patch serupa dan mencoba hal serupa tapi ga ada masalah?

Mohon bantuannya dari kawan2.. bener2 stuck di sini >.< hiks2.. terimakasih 
sebelumnya.. .

Regards,
Marcelino Ponty
(Phone +62819 - 3223 54 84)
"Ad Maiorem Dei Gloriam"

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


   


      

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

Kirim email ke