我想实施一个简单的折扣优惠券。我有一个模型,保存有效的优惠券(除了一些其他东西)和产品功能的产品模型(名称,价格,...)。
我有一个简单的表单,使用户可以输入他的优惠券。我应该检查它是否有效(我为它定义了一个范围)。如果输入的优惠券有效,我必须更新两个提到的表格。在第一个,我必须将优惠券更改为“已使用”,在第二个表格中,我应该使用新值更新价格。我想在用户在表单中输入值时执行这些操作。
你有什么建议和解决办法来做这两件事?由于这两个操作与2个不同的模型和控制器有关,我无法在一个控制器中访问它们。调用方法执行这些操作的最佳方法是什么?你能给我一个明确的解释吗?
答案 0 :(得分:2)
您可以访问任一控制器中的两个模型,但要执行此操作" rails方式"你应该把这个逻辑放在模型中。我会在您的优惠券模型中添加一个before_update回调函数,用于检查优惠券是否被更改为" used"如你所说。如果是这样,您可以更新其价格"在您的产品表中。要从中获得的关键概念是,您可以从任何地方调用所有模型,它们不仅限于各自的控制器。