我不确定在我的情况下最好的方法是什么,我想提出意见。
我的情况是:
我有一个“ Ticket
”模型,有多种字段:文本、数字和关联。门票支持通过acts_as_commentable
gem 发表评论。
由tickets
用户生成,用户可以评论和修改自己的工单。
因为 a 的字段ticket
会随着时间而改变,所以我想允许我的用户修改其中的几个。我需要的是保留所有更改的注释历史记录,以便他们随时可以在票证中看到更改的内容、原因和时间,在注释、时间戳和更改列表中,他们可以与评论。
我想通过生成一个“ TicketUpdate
”模型来解决这个问题,在评论表单中生成 TicketUpdates(使用fields_for
and accepts_nested_attributes_for
)。
基本上,用户可以在下拉列表(即select
标签)中选择他们想要更改的字段,更改下拉列表的值将触发一个事件以显示适当的输入字段(input
对于文本和数字字段,select
对于关联) 预填充旧值
我可以拦截执行更新TicketUpdates
的“ comment/create
”控制器中的。
这种方法对用户来说看起来不错,但我看不出如何以简洁或干燥的方式实现。因为工单有很多字段并且它们是混合的小数和关联,所以我必须在视图和控制器中为每个字段实现特定的逻辑。
我不确定是否有更好的方法,或者实际上有任何宝石或技巧可以轻松完成这项工作。
有人在这里推荐我吗?
我正在使用导轨 3.2.8。