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]

Kirim email ke