0

我见过一些人使用这样的代码

respond_to do |format|
  format.html
  format.js
end

如果我们有 template.html 和 template.js,这样做的目的是什么。任何一个都可以在不指定respond_to的情况下呈现

4

3 回答 3

0

格式选项可以占用一个块,以便您可以进行一些自定义呈现,例如呈现文件或:head响应。看看这里的一些例子

于 2012-12-31T00:10:03.427 回答
0

您的代码段没有做任何特别的事情,但格式选项允许您在必要时提供额外的自定义行为。

例如,如果您想将您的呈现@products为 JSON:

 respond_to do |format|
  format.html
  format.js { render :json => @products }
end

这只是您可以对格式块执行的众多操作之一。有关更多信息,请参阅Ruby on Rails 指南:布局和渲染

于 2012-12-31T00:10:48.177 回答
0

如果您没有为不同的格式指定不同的行为,则没有理由使用respond_to. 如果您有模板,它们将自动被导轨拾取。如果您需要每种格式的不同行为,该respond_to方法很有用:

respond_to do |format|
  format.html { render :edit }
  format.json { render :json => '{}' }
end
于 2012-12-31T00:12:17.040 回答