Module: Ignorable
- Defined in:
- lib/ignorable.rb
Instance Attribute Summary collapse
-
#ignored_columns ⇒ Object
readonly
Returns the value of attribute ignored_columns.
Instance Method Summary collapse
- #columns ⇒ Object
-
#ignore_columns(*columns) ⇒ Object
(also: #ignore_column)
Prevent Rails from loading a table column.
-
#ignored_column?(column) ⇒ Boolean
Has a column been ignored? Accepts both ActiveRecord::ConnectionAdapter::Column objects, and actual column names (‘title’).
- #reset_ignored_columns ⇒ Object
Instance Attribute Details
#ignored_columns ⇒ Object (readonly)
Returns the value of attribute ignored_columns.
8 9 10 |
# File 'lib/ignorable.rb', line 8 def ignored_columns @ignored_columns end |
Instance Method Details
#columns ⇒ Object
2 3 4 5 6 |
# File 'lib/ignorable.rb', line 2 def columns @columns ||= super.reject do |col| self.ignored_column?(col) end end |
#ignore_columns(*columns) ⇒ Object Also known as: ignore_column
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
19 20 21 22 23 24 |
# File 'lib/ignorable.rb', line 19 def ignore_columns *columns @ignored_columns ||= [] @ignored_columns += columns.map(&:to_s) reset_column_information @ignored_columns.tap(&:uniq!) end |
#ignored_column?(column) ⇒ Boolean
Has a column been ignored? Accepts both ActiveRecord::ConnectionAdapter::Column objects, and actual column names (‘title’)
30 31 32 33 34 |
# File 'lib/ignorable.rb', line 30 def ignored_column? column ignored_columns.present? && ignored_columns.include?( column.respond_to?(:name) ? column.name : column.to_s ) end |
#reset_ignored_columns ⇒ Object
36 37 38 39 |
# File 'lib/ignorable.rb', line 36 def reset_ignored_columns @ignored_columns = [] reset_column_information end |