Kalau mau pake parameter, buat method saja.
class User
   has_many :owner_products, :class_name => "Product",
            :foreign_key => "owner_id"
   has_many :supplier_products, :class_name => "Product",
            :foreign_key => "supplier_id"

   def owner_products_yang_dipost_pada_tahun(thn)
     self.owner_products.find :all, :conditions => ['tahun = ?',thn]
   end
end


Hadi Sunyoto wrote:
> Terima kasih banyak pak.
> 
> Kalau misalnya saya mau refine searchnya di has_many menggunakan has_many 
> yang sudah ada, apakah bisa?
> 
> misalnya
> 
> class User
> 
>   has_many :owner_products, :class_name => "Product",
> 
>            :foreign_key => "owner_id"
> 
>   has_many :supplier_products, :class_name => "Product",
> 
>            :foreign_key => "supplier_id"
> 
> end
> 
> saya mau tambahkan has_many :owner_products_yang_dipost_pada_tahun tertentu
> 
> saya coba tambahkan
> has_many :owner_products_yang_dipost_pada_tahun, :source :owner_products, 
> :conditions => "tahun = #{id}"
> malah muncul error:
> NameError : uninitialized constant User::OwnerProductsYangDipostPadaTahun ...
> 
> Intinya sih saya mau re-use :owner_products dan dibikin lebih spesifik lagi.
> 
> 
> ----- Pesan Asli ----
> Dari: Marcelinus Gozali <[EMAIL PROTECTED]>
> Kepada: [EMAIL PROTECTED]
> Terkirim: Rabu, 21 November, 2007 2:31:54
> Topik: Re: [id-ruby] belongs_to 2x untuk model yang sama, apa bisa?
>     
>             Saya sih nangkepnya relasi antar product ke usernya one-to-one, 
> yaitu 1 
> 
> product hanya mempunyai 1 owner dan 1 supplier.
> 
> Tapi satu user itu dual role sebagai Owner dan Supplier.
> 
> 
> 
> Kalau bener codenya kaya gini:
> 
> 
> 
> class Product
> 
>    belongs_to :owner, :class_name => "User",
> 
>               :foreign_key =>"owner_id"
> 
>    belongs_to :supplier, :class_name => "User",
> 
>               :foreign_key =>"supplier_ id"
> 
> end
> 
> 
> 
> class User
> 
>   has_many :owner_products, :class_name => "Product",
> 
>            :foreign_key => "owner_id"
> 
>   has_many :supplier_products, :class_name => "Product",
> 
>            :foreign_key => "supplier_id"
> 
> end
> 
> 
> 
> hadi_indomulti wrote:
> 
>> sori mungkin topiknya rada ambigu, ini coba saya jelasin:
> 
>> rails 1.2.3, ruby 1.8.6, xp sp2
> 
> 
>> sebuah produk adalah milik 1 owner yang dikirim oleh 1 supplier (yang
> 
>> mungkin beda orang), owner dan supplier masuk dalam 1 kategori table
> 
>> User dan produk masuk dalam table Product
> 
> 
>> class Product ...
> 
>>   belongs_to :user, :foreign_key => owner_id
> 
>>   belongs_to :user, :foreign_key => supplier_id
> 
>>  ...
> 
>> end
> 
> 
> 
> p = Product.find( 1)
> 
> p.owner.name
> 
> p.supplier.name
> 
> 
> 
> asumsi user punya kolom 'name'
> 
> 
> 
> 
>> Sepertinya masuk akan dan bisa dikerjakan, Product a punya owner, dan
> 
>> punya supplier. Tapi bagaimana dengan class User nya?
> 
> 
>> class User ...
> 
>>   has_many :product <-- **
> 
>>  ...
> 
>> end
> 
> 
>> ** - dalam kasus ini product itu milik supplier atau milik owner?
> 
>> bagaimana dalam saat tertentu saya bisa bilang owner punya x product
> 
>> dan dalam saat lain saya juga mau bilang supplier a punya product apa aja.
> 
> User 1 sebagai supplier mempunyai product apa saja, codenya
> 
> user = User.find(1)
> 
> user.supplier_ products
> 
> 
> 
> Kalau user yg sama sebagai owner punya product apa saja:
> 
> user = User.find(1)
> 
> user.owner_products
> 
> user.owner_products .size
> 
> 
> 
> 
>> Apakah hal itu mungkin? apakah ada cara yang lebih baik?
> 
> 
>> Sekian terima kasih
> 
> 
> 
> Salam kenal,
> 
> Marcel
> 

Kirim email ke