Using a Rails helper method within a javascript asset

前端 未结 5 2202
长发绾君心
长发绾君心 2020-11-28 03:13

Is there any way to use a Rails helper method, more specifically, a path helper method within a javascript asset file. This file foo.js.coffee.erb



        
5条回答
  •  醉话见心
    2020-11-28 03:37

    You can include any helper/module/class in an erb template with:

    <% environment.context_class.instance_eval { include MyHelper } %>
    

    See: https://github.com/rails/sprockets/blob/master/lib/sprockets/environment.rb and https://github.com/rails/sprockets/blob/master/lib/sprockets/context.rb

    To use the url helpers you have to include your specific applications' helpers.

    They are available at Rails.application.routes.url_helpers so:

    <% environment.context_class.instance_eval { include Rails.application.routes.url_helpers } %>
    

    EDIT: Fixed links to moved sprockets repo but not really sure this still makes sense so many years later.

提交回复
热议问题