Class: ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase
- Inherits:
-
Object
- Object
- ActiveRecord::Associations::ClassMethods::JoinDependency::JoinBase
- Defined in:
- lib/select_with_include/associations.rb
Instance Method Summary collapse
Instance Method Details
#column_names_with_alias(options = {}) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/select_with_include/associations.rb', line 30 def column_names_with_alias( = {}) unless @column_names_with_alias @column_names_with_alias = [] parsed_select = parse_select([:select]) ([primary_key] + (column_names - [primary_key])).each_with_index do |column_name, i| unless column_name != primary_key && parsed_select && !(parsed_select[table_name].member?(column_name) || parsed_select[table_name].member?('*') ) @column_names_with_alias << [column_name, "#{ aliased_prefix }_r#{ i }"] end end end return @column_names_with_alias end |
#parse_select(select_options) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/select_with_include/associations.rb', line 43 def parse_select() return false if .nil? tokens = .gsub(' ', '').split(',') parsed = tokens.inject(Hash.new() {[]}) {|hash, token| tab, col = token.split('.'); hash[tab] = hash[tab] << col; hash} return false if parsed.keys.flatten.member? '*' return parsed end |