adding joins clause to accessible_by when conditions are across associations

This commit is contained in:
Ryan Bates
2010-04-20 17:02:28 -07:00
parent 4da31c0709
commit e20081454f
6 changed files with 68 additions and 7 deletions

View File

@@ -200,6 +200,16 @@ module CanCan
end
end
# Returns the associations used in conditions. This is usually used in the :joins option for a search.
# See ActiveRecordAdditions#accessible_by for use in Active Record.
def association_joins(action, subject)
can_definition = matching_can_definition(action, subject)
if can_definition
raise Error, "Cannot determine association joins from block for #{action.inspect} #{subject.inspect}" if can_definition.block
can_definition.association_joins
end
end
private
def can_definitions