Overwriting ActiveRecord::Base.content_columns

Hi guys,

I want to define my own Content_colums methode as part of the
ActiveRecord::Base class.

To do so, I have added the following code:

[Environment.rb]
require ‘model_extensions’
ActiveRecord::Base.send(:extend, ModelExtensions)

[model_extensions.rb]
module ModelExtensions
#Define Mixins for the ActiveRecord::Base modelclass

Define list of available items for select

def valid_items(current_item=nil)
#… works fine
end

Overwrite displayble columns attribute, eliminate: created_* and

updated_*
def content_columns
@content_columns ||= columns.reject { |c| c.primary || c.name =~
/(id|count)$/ || c.name == inheritance_column || c.name ==
locking_column || c.name =~ /(created
|updated
)/}
end
end

However, this won’t work for the content_columns! The valid_items method
though works perfectly as it is added to the AR:Base class.
But overwriting content_columns has no effect at all.
I tried to put ‘attr :content_columns, true’ but no effect neither

Any clues?

Jan wrote:

module ModelExtensions
/(id|count)$/ || c.name == inheritance_column || c.name ==
locking_column || c.name =~ /(created
|updated
)/}
end
end

However, this won’t work for the content_columns! The valid_items method
though works perfectly as it is added to the AR:Base class.
But overwriting content_columns has no effect at all.
I tried to put ‘attr :content_columns, true’ but no effect neither

extend will only add methods, not re-define existing ones.

Instead, just write model_extensions.rb as

class ActiveRecord::Base
def self.valid_items(current_item=nil)

end

def self.content_columns

end
end

and require this in environment.rb


We develop, watch us RoR, in numbers too big to ignore.