2011-06-24 27 views

Respuesta

2

Conozco una posible respuesta para _path, pero lo mismo no funciona para mí para _url. ¿Alguien sabe por qué?

# at the bottom of config/routes.rb 
module ActionView::Helpers::UrlHelper 
    def model_name_path model, args={} 
     # your implementation 
    end 
end 
+0

Oh, creo que funciona para _url también, solo que estaba llamando al _url desde un controlador y no a una vista. – Ben

+0

Supongamos que tengo un nombre de método auxiliar llamado user_links, donde especifico el nombre del método según su p. Ej.,. Tengo un modelo de publicación. Mi código, se ve así: - ~ módulo ActionView :: Helpers :: UrlHelper def post post_name_path, args = {} # su implementación -> ¿qué debería tener esto exactamente? final final ~ – boddhisattva

+0

Lo siento, traté de usar un bloque de código apropiado pero de alguna manera no pude hacerlo bien en la sección de comentarios. – boddhisattva

4

Esta solución funcionó para mí.

Agregue este código al final del archivo config/routes.rb. Asegúrese de reemplazar MyApp con el nombre de su aplicación.

MyApp::Application.routes.named_routes.module.module_eval do 
    def model_name_path(*args) 
    # Your code here 
    end 

    def model_name_url(*args) 
    # Your code here 
    end 
end 

MyApp::Application.routes.named_routes.instance_eval do 
    @helpers += [:model_name_path, :model_name_url] 
end 

Estos métodos personalizados estarán disponibles en controladores, vistas y pruebas.

+1

en Rails 4: Rails.application.routes.named_routes.url_helpers_module.module_eval do ... – luckyjazzbo

Cuestiones relacionadas