2011-09-29 21 views
10

¿Cómo puedo agregar mis métodos personalizados a mis recursos, como archivos css, como los que Rails hizo con el asistente 'asset_path'?Agregue métodos personalizados a la canalización de activos Rails 3.1?

Con propia ayudante de carril, puedo escribir esto:

# some.css.erb: 

<%= asset_path 'a_image.png' %> 

# How can I write this: 

<%= my_custom_method 'a_image.png' %> 

He intentado muchas maneras, pero no podía encontrado una manera decente de esto. ¿Conoces uno?

Gracias

Respuesta

18

La mejor manera que encontré fue la creación de un módulo de ayuda personalizada en app/ayudantes:

module AssetsHelper 
    def my_custom_helper_method 
    # do something 
    end 
end 

Y luego exigir que sea así en application.rb, después de la configuración de sus aplicaciones (parte inferior):

module Sprockets::Helpers::RailsHelper 
    require Rails.root.join('app', 'helpers', 'assets_helper.rb') 
    include AssetsHelper 
end 

Y es posible que siga este problema para encontrar una mejor manera: https://github.com/rails/rails/issues/3282

0

métodos de ayuda normales no están disponibles en las vistas de activos. Para agregar sus propios métodos, deberá extender el módulo de ayuda de Sprockets. Ten un look at the code de los ayudantes integrados para ver cómo puedes hacer esto.

En pocas palabras, puede agregar un archivo en lib con la misma estructura que este y agregar sus propios métodos. No olvide incluir la nueva biblioteca en su inicializador de aplicación.

+0

si añado que espero que funcionaría en heroku también. gracias por la respuesta. esa ha sido una opción para mí también. tal vez debería bifurcar los rieles y agregar esta característica yo mismo. –

Cuestiones relacionadas