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



在ajax繁重的应用程序中,使用javascript/coffeescript文件来识别rails应用程序中的路由似乎是常见和合理的。然而,在您的资产中访问url_for helper并不容易。

我经常看到人们内联一个变量在他们的视图,javascript读取。还有一些插件可以通过javascript对象提供路由。参见在javascript中访问rails路由。

我错过了一个简单的方法来做到这一点吗?这种做法不好吗?还有什么选择呢?

因为使用管道的标准方法是用手指将JS文件编译为一个文件,所以我认为没有其他替代方法。

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

question_path(@current_question)

当JS文件在生产环境中编译时,这些是不可用的。

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

从视图中获取路径

我们通常的处理方式是让Javascript从HTML中获得它需要的任何路径,这是使用所有视图帮助器呈现的。

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

最新更新