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]

Kirim email ke