# File lib/active_record/relation/query_methods.rb, line 149 def arel @arel ||= build_arel end
# File lib/active_record/relation/query_methods.rb, line 174 def build_arel arel = table arel = build_joins(arel, @joins_values) unless @joins_values.empty? arel = collapse_wheres(arel, (@where_values - ['']).uniq) arel = arel.having(*@having_values.uniq.reject{|h| h.blank?}) unless @having_values.empty? arel = arel.take(connection.sanitize_limit(@limit_value)) if @limit_value arel = arel.skip(@offset_value) if @offset_value arel = arel.group(*@group_values.uniq.reject{|g| g.blank?}) unless @group_values.empty? arel = arel.order(*@order_values.uniq.reject{|o| o.blank?}) unless @order_values.empty? arel = build_select(arel, @select_values.uniq) arel = arel.from(@from_value) if @from_value arel = arel.lock(@lock_value) if @lock_value arel end
# File lib/active_record/relation/query_methods.rb, line 118 def create_with(value) relation = clone relation.create_with_value = value relation end
# File lib/active_record/relation/query_methods.rb, line 153 def custom_join_sql(*joins) arel = table.select_manager joins.each do |join| next if join.blank? @implicit_readonly = true case join when Array join = Arel.sql(join.join(' ')) if array_of_strings?(join) when String join = Arel.sql(join) end arel.join(join) end arel.join_sql end
# File lib/active_record/relation/query_methods.rb, line 22 def eager_load(*args) relation = clone relation.eager_load_values += args unless args.blank? relation end
# File lib/active_record/relation/query_methods.rb, line 130 def extending(*modules, &block) modules << Module.new(&block) if block_given? relation = clone relation.send(:apply_modules, modules.flatten) relation end
# File lib/active_record/relation/query_methods.rb, line 124 def from(value) relation = clone relation.from_value = value relation end
# File lib/active_record/relation/query_methods.rb, line 44 def group(*args) relation = clone relation.group_values += args.flatten unless args.blank? relation end
# File lib/active_record/relation/query_methods.rb, line 81 def having(*args) relation = clone relation.having_values += build_where(*args) unless args.blank? relation end
# File lib/active_record/relation/query_methods.rb, line 12 def includes(*args) args.reject! {|a| a.blank? } return clone if args.empty? relation = clone relation.includes_values = (relation.includes_values + args).flatten.uniq relation end
# File lib/active_record/relation/query_methods.rb, line 66 def joins(*args) relation = clone args.flatten! relation.joins_values += args unless args.blank? relation end
# File lib/active_record/relation/query_methods.rb, line 87 def limit(value) relation = clone relation.limit_value = value relation end
# File lib/active_record/relation/query_methods.rb, line 99 def lock(locks = true) relation = clone case locks when String, TrueClass, NilClass relation.lock_value = locks || true else relation.lock_value = false end relation end
# File lib/active_record/relation/query_methods.rb, line 93 def offset(value) relation = clone relation.offset_value = value relation end
# File lib/active_record/relation/query_methods.rb, line 50 def order(*args) relation = clone relation.order_values += args.flatten unless args.blank? relation end
# File lib/active_record/relation/query_methods.rb, line 28 def preload(*args) relation = clone relation.preload_values += args unless args.blank? relation end
# File lib/active_record/relation/query_methods.rb, line 112 def readonly(value = true) relation = clone relation.readonly_value = value relation end
# File lib/active_record/relation/query_methods.rb, line 56 def reorder(*args) ActiveSupport::Deprecation.warn "reorder is deprecated. Please use except(:order).order(...) instead", caller relation = clone unless args.blank? relation.order_values = args relation.reorder_flag = true end relation end
# File lib/active_record/relation/query_methods.rb, line 138 def reverse_order order_clause = arel.order_clauses.join(', ') relation = except(:order) order = order_clause.blank? ? "#{@klass.table_name}.#{@klass.primary_key} DESC" : reverse_sql_order(order_clause) relation.order(Arel.sql(order)) end
Generated with the Darkfish Rdoc Generator 2.