發票
:invoice_num string
:date datetime
.
.
:disclaimer_num integer (foreign key)
免責聲明
:disclaimer_num integer
:version integer
:body text
對於每個disclaimer
有多個版本,並且將被保存在數據庫中。這是我怎麼寫搜索(簡體):
scope = Invoice.scoped({ :joins => [:disclaimer] })
scope = scope.scoped :conditions => ["Invoice.invoice_num = ?", "#{params[:num]}"]
scope = scope.scoped :conditions => ["Disclaimer.body LIKE ?", "%#{params[:text]}%"]
然而,上述搜索將搜索再次所有版本的免責聲明。我怎樣才能限制搜索只有最後免責聲明(即version
整數是最大的)。
請注意:
發票不保留版本號。新的免責聲明將被添加到免責聲明表並保留舊版本。
感謝。順便說一句,'範圍'應該是:'scope = scope.scoped:conditions => {:disclaimer_num => Disclaimer.latest.disclaimer_num}' – ohho 2010-06-03 02:16:14
是否diclaimer_num是免責聲明表的主鍵?我假設它是,這就是爲什麼我不需要.disclaimer_num。 – Samuel 2010-06-03 04:08:08
這是一個複合主鍵(如果不計算默認'id'鍵),即':declaimer_num' +':version' – ohho 2010-06-03 06:19:45