我是红宝石的新手,我对在线所有文档都感到非常困惑。我正在创建一个跟踪订单的数据库程序。我已经在模型中设置了has_one,belongs_to和has_many关联,并且可以验证它们与sqlbrowswer的关系。
这是模型的粗略说明。
每个订单只有一种产品,一项服务,一张账单,并且每张账单可以收取很多费用。相同的产品可能以不同的顺序出现,但每个订单都是唯一的。
我还有一个order_observer模型来创建产品的依赖模型
class OrderObserver < ActiveRecord::Observer
observe :order
def after_create(order)
Product.create! :order_id => order.id
Service.create! :order_id => order.id
Bill.create! :order_id => order.id
end
end
这是我的产品类和订单类的样子:
class Product < ApplicationRecord
belongs_to :order
end
class Order < ApplicationRecord
has_one :product, dependent: :destroy
has_one :bill, dependent: :destroy
has_one :service, dependent: :destroy
accepts_nested_attributes_for :product
accepts_nested_attributes_for :bill
accepts_nested_attributes_for :service
end
现在,我很困惑的是如何更新依赖模型。我应该为每个模型实现多个控制器,还是仅由一个控制器来处理整个事情?
现在我的主控制器中只有:
def create
@order = Order.new(order_params)
end
def edit
@order = Order.find(params[:id])
end
def update
end
我将不胜感激任何提示或指导。 谢谢!
答案 0 :(得分:0)
现在,我很困惑的是如何更新依赖模型。我应该为每个模型实现多个控制器,还是仅由一个控制器来处理整个事情?
您可以随心所欲地执行此操作,但是您应该始终记住“资源”的想法,在这种情况下,每个模型都代表一个资源,因此您应该单独进行操作。 Rails程序基于资源,如您在“ routes.rb”中所见。