如何使用Rails在数据库中的单个列中保存多个值?

时间:2015-10-27 00:27:27

标签: ruby-on-rails ruby-on-rails-4 database-design rubygems

我想保存任何数据库列的每个修改。例如,如果用户更新他/她的联系信息,那么我的应用程序应该更新值,但也保持保存以前的值。我该怎么做?有没有宝石?

1 个答案:

答案 0 :(得分:1)

您可以使用PaperTrail gem执行此操作。您可以有选择地跟踪数据库表,还可以指定要排除的列。

在Github页面上有相当详细的文档,但基本上要设置它你所要做的就是(直接从文档中复制):

# Add PaperTrail to your Gemfile.
gem 'paper_trail', '~> 4.0.0'

# Add a versions table to your database.
bundle exec rails generate paper_trail:install
bundle exec rake db:migrate

# Add has_paper_trail to the models you want to track.
class Widget < ActiveRecord::Base
  has_paper_trail
end