Loading ...
Sorry, an error occurred while loading the content.
 

Re: [id-ruby] help: rails has_many association tanpa kolom 'id'

Expand Messages
  • marcelino ponty
    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
    Message 1 of 2 , Feb 28, 2009
      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 <kaosrobekrobek@...>
      To: id ruby <id-ruby@yahoogroups.com>
      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]
    Your message has been successfully submitted and would be delivered to recipients shortly.