Pake association
extensions<http://guides.rubyonrails.org/association_basics.html#association-extensions>aja.
class NewsEntry < ActiveRecord::Base
has_and_belong_to_many :news_tags, :join_table => 'news_entries_news_tags' do
def to_s
# example:
find(:all).collect(&:to_s).join(', ')
end
end
end
puts NewsEntry.first.news_tags.to_s
--
Hendy
2009/8/17 Nugroho Herucahyono <[email protected]>
> eh, ada ahmy...
>
> sory kalo salah nangkep, tp gw nangkepnya lo mau override biar
>
> news_entry.news_tags.to_s yang return kayak gini :
> "#<NewsTag:0xb6d84008>#<NewsTag:0xb6d83fa4>#<NewsTag:0xb6d83f54>"
>
> jadi bisa return : "newstag1 newstag2 newstag3"
>
> begitukah??
>
> yang perlu diperhatiin,
>
> - news_entry.news_tags akan mereturn Array of news_tags
>
> - method Array#to_s (defaultnya) akan memanggil method to_s dari
> masing2 elemen nya dan menggabungkannya jadi sebuah String
>
> jadi menurut gw solusi paling elegan adalah dengan meng-override
> method NewsTag#to_s.
>
> misalnya NewsTag punya attribute name, lo bisa :
>
> class NewsTag
>
> def to_s
> "#{name} " # <- cuman buat nambahin spasi
> end
>
> end
>
> jadi news_entry.newstags.to_s bakal :
>
> "newstagname1 newstagname2 "
>
>
> kecuali kalau butuh format string nya aneh2, harus mengoverride method
> to_s dari array
> atau eigenclass array hasil querynya seperti dijelaskan mas Erdwin.
>
>
> MERDEKA.
>
>
> ------------------------------------
>
> ID-Ruby
> Berdiskusi dan belajar bersama Bahasa Pemrograman Ruby, termasuk segala
> varian Ruby (JRuby, Rubinius, IronRuby, XRuby), dan program yang dibuat
> dengan Ruby (Ruby on Rails, JRuby on Rails, Merb)
>
> http://rubyurl.com/Q8DD
> http://news.gmane.org/gmane.comp.lang.ruby.region.indonesia
>
> Yahoo! Groups Links
>
>
>
>
[Non-text portions of this message have been removed]