Attualmente sto sperimentando lo spostamento delle funzionalità nei motori. Funziona bene finora, ma sono un po 'confuso perché certe parti del motore vengono sempre ricaricate automaticamente quando qualcosa cambia, e altre no.Rails: solo gli helper vengono ricaricati quando si riavvia il server
In particolare, quando si aggiunge un metodo di supporto, devo riavviare il server Rails, altrimenti non viene visualizzato da Rails. Questo comportamento normale? Ecco la parte rilevante del mio motore:
componenti/iq_list.rb
# encoding: utf-8
require 'iq_list/engine'
# Load IqList Modules
module IqList
extend ActiveSupport::Autoload
autoload :Helpers
autoload :Models
autoload :Controllers
end
componenti/iq_list/engine.rb
module IqList
class Engine < ::Rails::Engine
end
end
componenti/iq_list/helpers.rb
module IqList
module Helpers
extend ActiveSupport::Autoload
autoload :IqListHelper
end
end
componenti/iq_list/helpers/iq_list_helper.rb
module IqList
module Helpers
module IqListHelper
def some_method
# ...
end
end
end
end
Sono ancora molto nuovo per i motori, e molto del codice sopra ho preso dal lavoro di qualcun altro, quindi per favore sii paziente con me. Ogni suggerimento nella giusta direzione è molto apprezzato.
http://stackoverflow.com/questions/4713066/how-can-i-force-my-plugin- per ricaricare con ogni richiesta – apneadiving
Perché il codice è sotto una directory 'components'? Cosa ti sta facendo fare questo? I componenti sono una caratteristica antica di Rails (1.2). –
Dove lo posizioneresti? Come ho detto, ho preso il codice da qualcun altro, e penso che sia dovuto al fatto che all'interno della componente 'app/components' viene ricaricato correttamente. Dove metteresti un motore che stai sviluppando pesantemente? –