Ruby on rails “什么时候?”;回应“你要做的事”格式;对Javascript有意义吗?

Ruby on rails “什么时候?”;回应“你要做的事”格式;对Javascript有意义吗?,ruby-on-rails,rest,Ruby On Rails,Rest,我在Rails控制器中看到了以下代码: respond_to do |format| format.js {} end 我在XML和HTML格式中看到过这一点,但在Javascript中没有看到 如果您使用REST,比如使用replace\u html或remote\u form\u作为,这就是指定返回格式的方式吗?我知道RJS模板返回编译过的Javascript,所以我想也许这就是代码的作用 如果将代码放在散列符号(format.js{})中,是否会将其作为javascript发送回浏览

我在Rails控制器中看到了以下代码:

respond_to do |format|
  format.js {}
end
我在XML和HTML格式中看到过这一点,但在Javascript中没有看到

如果您使用REST,比如使用
replace\u html
remote\u form\u作为
,这就是指定返回格式的方式吗?我知道RJS模板返回编译过的Javascript,所以我想也许这就是代码的作用


如果将代码放在散列符号(
format.js{}
)中,是否会将其作为javascript发送回浏览器?

当AJAX请求从浏览器发送到控制器时,会使用它。控制器可以使用脚本(由视图中的ruby语句生成)进行响应,该脚本将在客户端上执行。

Rails在确定要发送的“模板”方面发挥了一些作用

in controller:
   def foo
   end

in view: (app/views/controller/) you can have 
    foo.html.erb   (usual, html template)
    foo.rjs  (javascript template)

rails将向浏览器发送正确的模板,HTML用于常规请求,RSJ用于Ajax请求。您可能希望在RJS模板中加入类似“page.replace_html”等javascript代码。通过这种方式,您可以使控制器远离视图代码。

yuo始终可以将格式添加到url并查看它的响应,/something.js将使用format.js代码进行响应,如果您想使用它,可以执行以下操作以避免渲染整个布局:

format.js { render :layout => false, :text => @models.to_json }
这将使用json字符串进行响应

format.js { render :layout => false }

需要一个名为[action].js.erb

的模板,您可能会遇到的另一个模板是format.rss,用于提要。