在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在那里查找它。