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