module Ignorable::ClassMethods
Public Instance Methods
ignore_columns(*columns)
click to toggle source
Prevent Rails from loading a table column. Useful for legacy database schemas with problematic column names, like 'class' or 'attributes'.
class Topic < ActiveRecord::Base ignore_columns :attributes, :class end Topic.new.respond_to?(:attributes) => false
# File lib/ignorable.rb, line 29 def ignore_columns(*columns) self.ignored_columns ||= [] self.ignored_columns += columns.map(&:to_s) reset_column_information descendants.each(&:reset_column_information) self.ignored_columns.tap(&:uniq!) end
Also aliased as: ignore_column
ignored_column?(column)
click to toggle source
Has a column been ignored? Accepts both ActiveRecord::ConnectionAdapter::Column objects, and actual column names ('title')
# File lib/ignorable.rb, line 41 def ignored_column?(column) self.ignored_columns.present? && self.ignored_columns.include?( column.respond_to?(:name) ? column.name : column.to_s ) end
reset_ignored_columns()
click to toggle source
# File lib/ignorable.rb, line 47 def reset_ignored_columns self.ignored_columns = [] reset_column_information end