lib/avo/app.rb in avo-2.26.1.pr1584.pre.1 vs lib/avo/app.rb in avo-2.26.2.pre.pr1579

- old
+ new

@@ -113,48 +113,11 @@ }) end end end - # Fetches the resources available to the application. - # We have two ways of doing that. - # - # 1. Through eager loading. - # We automatically eager load the resources directory and fetch the descendants from the scanned files. - # This is the simple way to get started. - # - # 2. Manually, declared by the user. - # We have this option to load the resources because when they are loaded automatically through eager loading, - # those Resource classes and their methods may trigger loading other classes. And that may disrupt Rails booting process. - # Ex: AdminResource may use self.model_class = User. That will trigger Ruby to load the User class and itself load - # other classes in a chain reaction. - # The scenario that comes up most often is when Rails boots, the routes are being computed which eager loads the resource files. - # At that boot time some migration might have not been run yet, but Rails tries to access them through model associations, - # and they are not available. - # - # To enable this feature add a `resources` array config in your Avo initializer. - # config.resources = [ - # "UserResource", - # "FishResource", - # ] - def fetch_resources - resources = if Avo.configuration.resources.nil? - BaseResource.descendants - else - Avo.configuration.resources - end - - resources.map do |resource| - if resource.is_a?(Class) - resource - else - resource.to_s.safe_constantize - end - end - end - def init_resources - self.resources = fetch_resources + self.resources = BaseResource.descendants .select do |resource| # Remove the BaseResource. We only need the descendants resource != BaseResource end .uniq do |klass|