--- In [email protected], "Arie Kusuma Atmaja"
<[EMAIL PROTECTED]> wrote:
>
> On 7/27/07, Aditya Agustyana <[EMAIL PROTECTED]> wrote:
> > aku punya model yg kayak gini
> >
> > class Avatar
> > belongs_to :hair_asset,:foreign_key=>"hair",:class_name=>"Asset"
> > belongs_to :body_asset,:foreign_key=>"body",:class_name=>"Asset"
> > belongs_to :hand_asset,:foreign_key=>"hand",:class_name=>"Asset"
> > belongs_to :foot_asset,:foreign_key=>"foot",:class_name=>"Asset"
> > belongs_to :face_asset,:foreign_key=>"face",:class_name=>"Asset"
> > end
>
> adit jawab dulu => code tsb refactor supaya? :-D
>
> cobain ini:
>
> class Avatar
> %w(hair body hand foot face).each do |e|
> eval(%Q~belongs_to :#{e}_asset, :foreign_key => "#{e}",
> :class_name => "Asset"~)
> end
> end
>
> Buat teman-teman yg lain silakan dikritisi dan diimprove coding saya
> diatas. Saya akan sangat sangat senang kalau ada yang bilang coding
> saya diatas sangat jelek dan saya minta yang lebih bagus daripada itu.
> FYI ini saya langsung reply tanpa ngetes dulu code tsb tadi jalan apa
> nggak.
>
> >
> > kode di atas memang bisa running, tapi koq aku merasa kode tsb bisa
> > di-refactor, tentu saja dengan menggunakan pengulangan, cuma aku binun
> > gmn caranya melakukan loopingnya ?
> >
> > coba kayak gini malah error :(
> >
> > Class Avatar
> > def initialize
> > belongs_lists=%w(hair body hand foot face)
> > belongs_lists.each do |bl|
> > belongs_to bl.sym,:foreign_key=>bl,:class_name=>"Asset"
> > end
> > end
> > end
>
>
> --
> Arie || ariekeren, http://ariekusumaatmaja.wordpress.com
> http://groups.yahoo.com/groups/id-ruby
> "Never say RTFM. Turn the trolls into committers", Audrey Tang -
> conisli-ofun.pdf
>
alasanya biar ndak diulangi terus (NDT-bhs indonya DRY, alah :D) ,
soale ada kemunkinan belongs_to nya jd nambah
btw makasih pak, kodenya dah nyala he he
tapi jd bertanya-tanya, potongan kode itu kan ndak dimasukin ke dalam
def, kalo dimasukin gmn caranya, daku udah nyobain kayak gini, eh ndak
bisa, muncul error "undefined method `belongs_all' for Avatar:Class"
module CustomizeBelong
def belongs_all(elements)
elements.each do |e|
eval(%Q~belongs_to :#{e}_asset, :foreign_key
=>"#{e}",:class_name => "Asset"~)
end
end
end
class Avatar < ActiveRecord::Base
include CustomizeBelong
belongs_all ["hair","body","hand","shoes","face"]
end
hihi koq jd berexperiment ginih