ho alcuni binari motore 'core', e ho:Rails riguarda motori di percorsi autoload
# core/app/models/core/concerns/user_helper.rb
module Core
module UserHelper
extend ActiveSupport::Concern
included do
# some methods
end
end
end
# core/app/models/core/user.rb
module Core
class User < ActiveRecord::Base
include Core::UserHelper
end
end
tuttavia dice inizializzato costante Nucleo :: userhelper. Così sembra il motore non carica le sue preoccupazioni per default, quindi ho aggiunto che nei percorsi autoload
module Core
class Engine < ::Rails::Engine
config.autoload_paths += %W(#{Core::Engine.root}/app/models/core/concerns)
isolate_namespace Core
end
end
Ed ora io finisco per questo errore: Impossibile caricare automaticamente costante userhelper, myapp atteso/core/app/modelli/core/preoccupazioni/user_helper.rb per definirlo
Quindi cosa c'è che non va qui? Quando ho controllato la guida http://edgeguides.rubyonrails.org/engines.html e non aveva le preoccupazioni nella directory concern, ma piuttosto in lib/preoccupazioni e avevo tutti i riferimenti per preoccuparmi di usare Core :: Concerns :: MyConcern, quindi è questo dove mettere i problemi nel motore?
Grazie
Modifica
Yury commento spiegato il problema, sembra che in rotaie directory motori preoccupazioni non si ottiene alcun trattamento speciale, ed è trattata come una normale directory sotto modelli, in modo da i moduli in esso contenuti devono trovarsi nello spazio dei nomi di Concerns e, quando si include un problema, è necessario includerlo anche con il namesapace di Concerns, se ho capito bene. Sono sorpreso che questo non sia menzionato nei documenti.
penso che il modulo dovrebbe essere chiamato Core :: Concerns :: UserHelper, e può rimanere nella directory 'app/models/concerns' –
sembra che questo abbia risolto il problema, un altro problema sollevato ma non penso che sia un altro problema, grazie mille :) –
nessun problema, felice di aiutare :) –