【发布时间】:2021-07-24 04:19:11
【问题描述】:
我想在模型中有一个“注释”项,它始终将新/编辑表单中的任何新文本附加到任何当前存在的注释。
我在看类似的东西:
def update
ppe_params[:notes] = @ppe.notes + "/n" + ppe_params[:notes]
respond_to do |format|
if @ppe.update(ppe_params)
format.html { gflash :success => 'PPE was successfully updated.'; redirect_to @ppe }
else
format.html { render :edit }
end
end
结束
这似乎是一个简单的解决方案,那么有哪些陷阱呢?我正在使用 Postgres,并不太担心 Postgres 中的 TEXT 列空间不足。将其移至模型中的方法是否更好?
有没有办法让 Postgres 总是将新的注释文本附加到当前列值?
【问题讨论】:
-
(1) 你的意思是
"\n"而不是"/n"? (2) 为什么不has_many :notes每次都创建一个新笔记?您可以将它们混合在一起以用于显示目的,但您会拥有带有时间戳/作者/...的单独注释。 -
-
这两点都很好。这意味着将当前笔记数据迁移到新表,但值得付出努力。跟踪日期和谁做笔记是我们想要的,这让我们一举搞定。谢谢!
标签: ruby-on-rails ruby postgresql ruby-on-rails-5