2015-05-27 12 views
0

У меня есть модель Цитата и модель Invoice. В базе данных для каждой из этих моделей есть столбцы: дата, компания, продукт и цена. Когда клиент одобряет цитату, я хотел бы повернуть эту цитату в счет-фактуру с теми же значениями, но с текущей датой и собственным счетом-фактурой.Rails 4: Как «Дублировать» или «Изменить состояние записей» с модели «A» на модель «B»?

Какой код следует включать в мою модель счета-фактуры, чтобы запись «дублировала» или «меняла» состояние?

Спасибо

ответ

1

В Цитата вы можете использовать следующий код

after_save :generate_invoice, :if => :approved? 

def approved? 
# your code to return true or false, this method should return true only one time, handle it carefully. 
end 

def generate_invoice 
    Invoice.create!(date: Time.now, company: self.company, product: self.product, price: self.price) 
end 
+0

Так включить этот код в цитате модели? – davefogo

+0

да, но вам нужно определить или отслеживать, что цитата была одобрена. –

+0

Итак, я собираюсь добавить одобренный флажок в форме. Таким образом, было бы «одобрено»? одобрено = true конец'? – davefogo