Created
July 27, 2018 10:53
-
-
Save donatoaz/37b926b45a5ba31ef24f4602bd578b31 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# frozen_string_literal: true | |
# Use this template to report PaperTrail bugs. | |
# Please include only the minimum code necessary to reproduce your issue. | |
require "bundler/inline" | |
# STEP ONE: What versions are you using? | |
gemfile(true) do | |
ruby "2.5.1" | |
source "https://rubygems.org" | |
gem "activerecord", "5.2.0" | |
gem "minitest", "5.11.3" | |
gem "paper_trail", "9.2.0", require: false | |
gem "sqlite3", "1.3.13" | |
end | |
require "active_record" | |
require "minitest/autorun" | |
require "logger" | |
# Please use sqlite for your bug reports, if possible. | |
ActiveRecord::Base.establish_connection(adapter: "sqlite3", database: ":memory:") | |
ActiveRecord::Base.logger = nil | |
ActiveRecord::Schema.define do | |
# STEP TWO: Define your tables here. | |
create_table :users, force: true do |t| | |
t.text :first_name, null: false | |
t.timestamps null: false | |
end | |
create_table :user_versions do |t| | |
t.string :item_type, null: false | |
t.integer :item_id, null: false | |
t.string :event, null: false | |
t.string :whodunnit | |
t.text :object, limit: 1_073_741_823 | |
t.text :object_changes, limit: 1_073_741_823 | |
t.text :name | |
t.datetime :created_at | |
end | |
add_index :user_versions, %i[item_type item_id] | |
add_index :user_versions, :name | |
end | |
ActiveRecord::Base.logger = Logger.new(STDOUT) | |
require "paper_trail" | |
# STEP FOUR: Define your AR models here. | |
module PaperTrail | |
class Version < ActiveRecord::Base | |
include PaperTrail::VersionConcern | |
self.abstract_class = true | |
end | |
end | |
class UserVersion < PaperTrail::Version | |
self.table_name = :user_versions | |
attr_accessor :name | |
end | |
class User < ActiveRecord::Base | |
has_paper_trail on: [], class_name: 'UserVersion', meta: { name: :first_name } | |
end | |
# STEP FIVE: Please write a test that demonstrates your issue. | |
class BugTest < ActiveSupport::TestCase | |
def test_1 | |
u = User.create(first_name: "Jane") | |
u.paper_trail.save_with_version | |
assert_equal u.first_name, u.versions.last.name | |
end | |
end | |
# STEP SIX: Run this script using `ruby my_bug_report.rb` |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment