我有一个简单的脚手架:
rails g scaffold Order name:string notes:text
我希望用户能够编辑他们的订单,但保留过去版本的副本以供参考。我考虑添加一个单独的“修订版”模型来代替文本,但我还希望表单能够保留最新信息以便于编辑。
抱歉不发布更多代码,我不确定会有什么帮助答案 0 :(得分:0)
我认为更好的想法是创建两个模型: Order and OrderHistory
订单与OrderHistory有很多关系。
在OrderController的更新操作中,您必须使用以前的数据创建一个OrderHistory,并使用指向Order的外键。您还可以使用create_date之类的默认rails字段来获取最新修订版本并保留其良好的历史记录。
使用模型订单是不好的做法,就像我说的那样。
class OrderController < ApplicationController::Base
before_action :set_order #implement this function
def update
orderHistory = OrderHistory.create(@order.params) #this code can fail I don't remmember how exactly do that now
respond_to do |format|
if @order.update(order_params)
orderHistory.save
else
#response in fail case
end
end
end
end