您好 我是RoR的新手。如何将简单的控制器逻辑切换到模型? 我的数据库列是order_type,quantity,quantity_adjusted
控制器
def create
@product = Product.new(params[:product])
# This is the control structure I want to move to Model
if @product.order_type = "Purchase"
@product.quantity_adjusted = -quantity
else
@product.quantity_adjusted = quantity
end
end
模型
class Product < ActiveRecord::Base
end
由于 LH
答案 0 :(得分:2)
有很多方法可以做到这一点。一种可能最自然的方法是创建一个实例方法,如:
def adjust_quantity(amount)
(put logic here)
end
在您的商品型号中。然后在你的控制器中,你会这样做:
@product.adjust_quantity(quantity)
答案 1 :(得分:0)
您可以在模型中使用回调。例如。 after_create
。
控制器:
def create
@product = Product.new(params[:product])
if @product.save
# redirect
else
render :new
end
end
型号:
class Product < ActiveRecord::Base
after_create :adjust_quantity
private
def adjust_quantity
if self.order_type == "Purchase"
self.quantity_adjusted = -quantity
else
self.quantity_adjusted = quantity
end
end
end