如何在 rails3.1 中使用 ajax?

Posted

技术标签:

【中文标题】如何在 rails3.1 中使用 ajax?【英文标题】:how to use ajax in rails3.1? 【发布时间】:2011-10-28 14:00:39 【问题描述】:

众所周知,Rails 3.1 使用的是 CoffeeScript 和 JQuery。

我处理 ajax 请求的旧方法是将请求响应到一个名为 some_action.js.erb

的模板

现在我们有了 CoffeeScript,我希望我的模板可以使用 coffeescript 语法。那我该怎么办?

只是更改模板文件的后缀名?

some_file.js.coffee 这在 assets/javascript 目录中运行良好。

但我正在处理 ajax 请求,它的模板位于文件夹 views 下,如果只是将模板名称从 some_action.js.erb 更改为 some_action.js.coffee.erbsome_action.js.coffee,它不起作用,rails 将其视为普通文件,不会将其从 coffeescript 语法编译为普通 javascript

我很抱歉我的英语能力,希望这次我的问题能解释我的目的。

【问题讨论】:

【参考方案1】:

假设您已升级到 Rails 3.1,如您所建议的,利用新语法就像将文件转换为 CoffeeScript 一样简单。

现在,您不能只将文件命名为 *.js.coffee 并期望转换,但 Railscasts 的 Ryan Bates 建议手动更改文件作为自己学习语法的好方法。事实上,他发布了一个关于他这样做的截屏视频:http://railscasts.com/episodes/267-coffeescript-basics

然后,Rails 将为您处理从 js.coffee 到 .js 的编译。

【讨论】:

我已经看过演员表了,也许我没有说清楚,我会再次编辑我的问题,请看一下 根据我从您的编辑中收集的信息,您将 some_action.js.coffee 保留在您的视图文件夹中,因此看不到正确的编译。但是,当您将它放在资产目录中时,它可以工作。那么,我可以简单地建议您将该文件保存在您的资产目录中吗?在那里,您可以创建任何您想要的组织层次结构。如果您仍然更愿意将 .js 保留在视图中(据我了解,这是不惯用的),我建议您对 rails 3.1 资产管道路径进行一些研究。 谢谢,关于 rails3.1 的更多内容可供我探索

以上是关于如何在 rails3.1 中使用 ajax?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 3.1 ajax:成功处理

根据 AJAX 请求设计注销用户。导轨 3.1

Rails 3 - 链接/按钮运行 ajax 请求而不重定向

如何在rails 3.1中使用jquery-addresspicker jquery

如何在 Rails 3.1 中为 CoffeeScript 使用选项“--bare”?

如何在 Rails 3.1 应用程序中完全禁用 CoffeeScript?