为什么ActionView :: Helpers :: UrlHelper在资产管道中不可用?

时间:2011-09-22 15:13:02

标签: ruby-on-rails coffeescript asset-pipeline

在ajax繁重的应用程序中,有一个知道rails应用程序中的路由的javascript / coffeescript文件似乎很常见且合理。然而,访问资产中的url_for助手并不容易。

我经常看到人们在他们的视图中内联一个javascript读取的变量。并且有一些插件可以通过javascript对象提供路由。请参阅Accessing rails routes in javascript

我错过了一个简单的方法吗?这是一种不好的做法吗?有什么替代方案?

2 个答案:

答案 0 :(得分:3)

因为使用管道的标准方法是使用fingerpint将JS文件编译为一个文件,所以我认为没有替代方法可以做到这一点。

URL助手通常需要变量或参数形式的某种上下文。例如:

question_path(@current_question)

在为生产编译JS文件时,这些文件无法使用。

通过内容块传入生成的路径对我来说似乎没问题(我在当前的应用程序中进行)。

答案 1 :(得分:3)

从视图中获取路径

我们通常采用的方法是让Javascript从HTML中获取所需的任何路径,这些路径是使用所有视图助手进行渲染的。

例如,如果您需要ajaxify表单,请让表单的action属性包含正确的AJAX提交URL,并让Javascript在那里查找。