Как исправить «вызов Project.connection для установления соединения» в отношении self.reflect_on_all_associations - PullRequest
0 голосов
/ 28 апреля 2019

Я использовал ActiveStorage для обработки вложений в моем приложении rails 5, и для каждого вложения мне нужны определенные методы.

Для этого я написал следующий код в модели, и он работает:

self.reflect_on_all_associations do |a|
    puts a.inspect
end

Теперь я хочу добавить этот код для использования со всеми моделями, но когда янапишите это в концерне, он выдает эту ошибку, когда я запускаю rails c:

#<ActiveRecord::Reflection::HasManyReflection:0x007fcdda57f288 @name=:integration_logs, @scope=nil, @options={:as=>:loggable, :dependent=>:nullify}, @active_record=Project (call 'Project.connection' to establish a connection), @klass=nil, @plural_name="integration_logs", @type="loggable_type", @foreign_type=nil, @constructable=true, @association_scope_cache=#<Concurrent::Map:0x007fcdda57ef40 entries=0 default_proc=nil>>

Это код моей проблемы:

module Storeable
  extend ActiveSupport::Concern

  included do
    self.reflect_on_all_associations.each do |a|
      puts a.inspect
    end
  end
end

И это код в моей модели:

class Project < ApplicationRecord
  include Storeable
  has_one_attached :image, dependent: :destroy
  has_one_attached :bundle_file, dependent: :destroy
  has_one_attached :android_file, dependent: :destroy
  has_one_attached :ios_file, dependent: :destroy
end
...