Rotaie che utilizzano route denominate all'interno dell'helper (ma con metodi di classe)
-
20-08-2019 - |
Domanda
Prova di usare questo metodo ( usa self.method_name
in FunnyHelper
, quindi chiamalo come FunnyHelper.method_name
nella vista).
Tuttavia, ciò causa almeno un paio di problemi: visualizza metodi come h ()
e le rotte con nome vengono rotte (sono ok con il metodo del modulo def nome_ metodo ma non all'interno di alcun metodo di classe
. def self.method_name
)
Ovviamente posso evitarlo rilasciando def self.method_name
su def method_name
; qualcuno con qualche suggerimento su come posso avere la mia torta e mangiarla anche io?
Soluzione
Se veramente vuoi farlo, puoi usare
include ActionController::UrlWriter
per ottenere l'accesso ai percorsi con nome e
# h is a private method
ActionController::Base.helpers.send :h, "<"
per altri helper di visualizzazione. Ma non lo consiglierei. A mio avviso, il modello di progettazione che Thoughtobt sta suggerendo qui fa schifo e vorrei solo usare helper: blog nonostante la loro lamentela che non sia esplicito. Questo è vero, una specie di ... ma Rails in generale e questa parte di Rails in particolare è progettata in modo completamente "non esplicito". In questo modo, cercare di combattere contro questo sarà più un problema di quanto valga la pena, come stai scoprendo.