Method: CanCan::ModelAdapters::ActiveRecordAdapter#database_records

Defined in:
lib/cancan/model_adapters/active_record_adapter.rb

#database_recordsObject



99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/cancan/model_adapters/active_record_adapter.rb', line 99

def database_records
  if override_scope
    @model_class.scoped.merge(override_scope)
  elsif @model_class.respond_to?(:where) && @model_class.respond_to?(:joins)
    mergeable_conditions = @rules.select {|rule| rule.unmergeable? }.blank?
    if mergeable_conditions
      @model_class.where(conditions).joins(joins)
    else
      @model_class.where(*(@rules.map(&:conditions))).joins(joins)
    end
  else
    @model_class.scoped(:conditions => conditions, :joins => joins)
  end
end