Rails define un montón de magia con rutas con nombre que hacen ayudantes para tus rutas. A veces, especialmente con rutas anidadas, puede ser un poco confuso hacer un seguimiento de qué URL obtendrá para una llamada de método auxiliar de ruta determinada. ¿Es posible, usando la consola de Ruby, ver qué vínculo generará una función auxiliar determinada? Por ejemplo, dado un ayudante con nombre como post_path (post), quiero ver qué URL se genera.
ruby-on-rails
Derek Thurn
fuente
fuente
app.get "/"
instancia_eval los métodos deseados, ya que ahora están protegidos de forma predeterminada. Algo así como:app.instance_eval{ post_path(post) }
app.teh_path
todavía funciona en Rails 4.0 y es útil para separar las rutas del motor de las rutas principales de la aplicación.mount Spree::Core::Engine, :at => '/'
, accedería a las rutas a través del nombre del motor, comoapp.spree_core_engine.some_path
. O, si el "nombre_motor" está configurado para ser algo diferente como en este código, entonces lo haríaapp.spree.some_path
.host
parámetro así:app.article_url(my_article, host: 'mydomain.com')
tú también puedes
desde dentro de una consola sesiones para acceder a los ayudantes:
o
fuente
Rails.application.routes.url_helpers.users_path
?En la consola de Rails, la aplicación variable contiene un objeto de sesión en el que puede llamar a los ayudantes de ruta y URL como métodos de instancia.
fuente
Siempre puede verificar la salida de
path_helpers
en la consola. Solo usa el ayudante conapp
fuente
Recuerde si su ruta está espaciada por nombre, como:
Entonces intenta :
salida
fuente
spree
ejemplo, eres un ángel que cayó del cielo.