我有一个模型(Candidate),我需要跟踪更改、版本差异、更改的人以及他们对更改的任何评论。我喜欢paper_trail,它几乎在所有方面都是我所需要的,但我想知道存储“变更评论”的最佳方式是什么。我一直在考虑实施三种选择之一:
comments表中添加一个versions列。如果我这样做的话,我不太确定真正更新这些信息的最佳方法。也许candidate.version.comments = @comments会起作用?将自定义列添加到纸质_trail的表中会有坏处吗?belongs_to :candidate,以跟踪comments和version。这似乎很恶心--我是否也需要将这个新表属于versions表?任何洞察力都将不胜感激。自从我以前使用paper_trail以来,我一直非常专注于用它来寻找解决方案,但我也会考虑您过去使用过的其他宝石或选项。
发布于 2013-12-19 04:24:53
最后,我选择了选项1。我创建了一个迁移,将注释字段添加到version表中,并将以下内容添加到CandidatesController#update
if @candidate.update(candidate_params)
#Add comments if they are available
@candidate.reload.versions.last.update(comments: params[:comments]) unless params[:comments].empty?这似乎是很好的工作,但我会感谢您有任何其他想法!
https://stackoverflow.com/questions/20671480
复制相似问题