Две модели:
Счет
: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
является максимальным).
Обратите внимание:
Счет-фактура не сохраняет номер версии. Новые отказы от ответственности будут добавлены в таблицу отказа от ответственности и сохранят старые версии.