AR: Undefined attribute method on abstract_class

NameError: undefined method content' for classLibraryFramework’

from
/Users/itsmechlark/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/core_ext/module/aliasing.rb:32:in
`alias_method’

from
/Users/itsmechlark/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/core_ext/module/aliasing.rb:32:in
`alias_method_chain’

from
/Users/itsmechlark/Desktop/GitHub/itsmechlark/cdasiaonline/app/models/library_framework.rb:134:in
`class:LibraryFramework

from
/Users/itsmechlark/Desktop/GitHub/itsmechlark/cdasiaonline/app/models/library_framework.rb:2:in
`<top (required)>’

from
/Users/itsmechlark/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:443:in
`load’

from
/Users/itsmechlark/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:443:in
`block in load_file’

from
/Users/itsmechlark/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:633:in
`new_constants_in’

from
/Users/itsmechlark/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:442:in
`load_file’

from
/Users/itsmechlark/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:342:in
`require_or_load’

from
/Users/itsmechlark/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:480:in
`load_missing_constant’

from
/Users/itsmechlark/.rvm/gems/ruby-2.1.5/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:180:in
`const_missing’

from
/Users/itsmechlark/Desktop/GitHub/itsmechlark/cdasiaonline/app/models/sec.rb:1:in
`<top (required)>’

class LibraryFramework < ActiveRecord::Base
self.abstract_class = true

def content_with_corrector
justified = self.class.justify_content(content_without_corrector)
self.class.check_replace_invalid_format(justified)
end
alias_method_chain :content, :corrector

end

class Sec < LibraryFramework
BANNER = ‘Taxation’
MIN_YEAR = 1980

validates :docdate, date: true,
inclusion: {
in: Date.new(MIN_YEAR)…Time.now.to_date,
message: “The date must be between #{Date.new(MIN_YEAR)}
and #{Time.now.to_date}”},
:if => lambda{ |object| object.doc_date.present? }
validates :year, :inclusion => { :in => MIN_YEAR…(Time.now.year),
:message => “The year must be between
#{MIN_YEAR} and #{Time.now.year}” },
:if => lambda{ |object| object.year.present? }

end

On Tuesday, December 2, 2014 8:03:58 AM UTC, itsmechlark wrote:

alias_method_chain :content, :corrector

Well this class doesn’t have a content method. If content is an accessor
method generated by active record for a database column of the same name
then the issue is that the abstract class has no table and this no
columns.
You might be able to use the inherited hook to add this override when
your
class is corrected

Also in recent versions of rails the accessor methods are generated in a
module included in the class - i don’t thing you need to use
alias_method_chain anymore - normal inheritance will do the job, so you
might be able to get away with just

def content
justified = self.class.justify_content(super)
self.class.check_replace_invalid_format(justified)
end

Even if you’re not on the right rails version, you can use
read_attribute
instead of calling super.

Fred