Sha256: 9ee6b34e754810cb0ff6871810ed169186247842a094377a65c03b250debb181
Contents?: true
Size: 1007 Bytes
Versions: 3
Compression:
Stored size: 1007 Bytes
Contents
module Comable module Linkable extend ActiveSupport::Concern module ClassMethods private def calc_linkable_id_options(klass, column_options = {}) return [[]] unless klass # HACK: Rails3系のpluckでは複数フィールドを指定できないためselectとmapでカラムを取得する # options = klass.pluck(*linkable_columns(column_options)) select_columns = linkable_columns(column_options) records = klass.select(select_columns) options = records.map(&select_columns.first).zip(records.map(&select_columns.last)) column_options[:use_index] ? options.unshift(index_option) : options end def linkable_columns(column_keys) default_columns_key.merge(column_keys).slice(:name, :id).values end def default_columns_key { id: :id, name: :name } end def index_option [Comable.t('admin.actions.index'), nil] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
comable-core-0.7.1 | app/models/concerns/comable/linkable.rb |
comable-core-0.7.0 | app/models/concerns/comable/linkable.rb |
comable-core-0.7.0.beta2 | app/models/concerns/comable/linkable.rb |