From 1fae552c8f5f13a75f0073ee6b2546e2b6c64a16 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Fri, 8 Jul 2011 12:43:03 -0700 Subject: [PATCH] [#467] Fix Journal#journaled to prevent uninitialized constant Journal::Journaled --- app/models/journal.rb | 7 ++++++- test/unit/journal_test.rb | 7 +++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/models/journal.rb b/app/models/journal.rb index 8070d78b..0b807fb2 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -23,7 +23,12 @@ class Journal < ActiveRecord::Base # Make sure each journaled model instance only has unique version ids validates_uniqueness_of :version, :scope => [:journaled_id, :type] - belongs_to :journaled, :touch => true + + # Define a default class_name to prevent `uninitialized constant Journal::Journaled` + # subclasses will be given an actual class name when they are created by aaj + # + # e.g. IssueJournal will get :class_name => 'Issue' + belongs_to :journaled, :touch => true, :class_name => 'Journal' belongs_to :user # ActiveRecord::Base#changes is an existing method, so before serializing the +changes+ column, diff --git a/test/unit/journal_test.rb b/test/unit/journal_test.rb index b87f63a6..9c50cb8a 100644 --- a/test/unit/journal_test.rb +++ b/test/unit/journal_test.rb @@ -94,4 +94,11 @@ class JournalTest < ActiveSupport::TestCase assert_not_equal start, @issue.reload.updated_on end + + test "accessing #journaled on a Journal should not error (parent class)" do + journal = Journal.new + assert_nothing_raised do + assert_equal nil, journal.journaled + end + end end