Class: ActiveAdmin::Views::TableFor::Column

Inherits:
Object
  • Object
show all
Defined in:
lib/active_admin/views/components/table_for.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ Column

Returns a new instance of Column.



129
130
131
132
133
134
# File 'lib/active_admin/views/components/table_for.rb', line 129

def initialize(*args, &block)
  @options = default_options.merge(args.last.is_a?(::Hash) ? args.pop : {})
  @title = pretty_title args[0]
  @data  = args[1] || args[0]
  @data = block if block
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



127
128
129
# File 'lib/active_admin/views/components/table_for.rb', line 127

def data
  @data
end

#titleObject

Returns the value of attribute title.



127
128
129
# File 'lib/active_admin/views/components/table_for.rb', line 127

def title
  @title
end

Instance Method Details

#sort_keyObject

Returns the key to be used for sorting this column

Defaults to the column’s method if its a symbol

column :username
# => Sort key will be set to 'username'

You can set the sort key by passing a string or symbol to the sortable option:

column :username, :sortable => 'other_column_to_sort_on'

If you pass a block to be rendered for this column, the column will not be sortable unless you pass a string to sortable to sort the column on:

column('Username', :sortable => 'login'){ @user.pretty_name }
# => Sort key will be 'login'


162
163
164
165
166
167
168
# File 'lib/active_admin/views/components/table_for.rb', line 162

def sort_key
  if @options[:sortable] == true || @options[:sortable] == false
    @data.to_s
  else
    @options[:sortable].to_s
  end
end

#sortable?Boolean

Returns:

  • (Boolean)


136
137
138
139
140
141
142
# File 'lib/active_admin/views/components/table_for.rb', line 136

def sortable?
  if @data.is_a?(Proc)
    [String, Symbol].include?(@options[:sortable].class)
  else
    @options[:sortable]
  end
end