什么定义了RJS?与我所读到的相混淆

时间:2011-05-22 15:31:08

标签: javascript ruby-on-rails rjs

我对有关RJS的stackoverflow的内容感到有些困惑。

很多人都说Rails 3.0已经放弃了UJS的RJS。这个陈述让我感到困惑,因为据我所知,突出(内联)和不引人注目的JavaScript之间的区别并没有定义RJS本身。

Isnt RJS使用JavaScript模板并使用AJAX调用的行为返回代码,而代码又在客户端执行,而不是让应用程序返回JSON或XML的非RJS路由,即只返回数据,有客户端JavaScript处理吗?

如果我所说的是正确的,Rails 3.0确实支持RJS,你可以将UJS与RJS一起使用,虽然我相信3.1中的支持将被分成可选的gem .s。

示例: - UJS与index.erb和application.js一起使用,但数据在index.js.erb中返回,因此UJS与RJS一起使用

2 个答案:

答案 0 :(得分:1)

你是对的,有时会令人困惑。我的观点是:

  • UJS出现在Rails 3

  • 在Rails 3.1中将RJS提取为宝石

  • UJS和RJS只有JS共同

答案 1 :(得分:1)

RJS只是另一种视图模板。它允许您编写Ruby而不是JavaScript。例如,update.js.erb使用jQuery:

$("#data").html("<%= escape_javascript render(:partial => 'data') %>");
$("#loading_indicator").hide();

update.rjs

page.replace_html 'data', :partial => 'data'
page.hide 'loading_indicator'

RJS依赖于PrototypeScriptaculous(链接指向助手的Ruby文档)。有关RJS和Rails 3.1的更多详细信息,请参阅this SO question/answer