在rails3中执行操作后会发生什么

时间:2014-11-16 17:48:05

标签: ruby-on-rails ruby-on-rails-3

我有这个索引动作:

def index

  @registros = find Cid

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @registros }
    format.js
  end
end

当使用ajax调用此操作时,它将呈现index.js.erb文件。没关系。但是我需要渲染application / index.js.erb文件,因为它是所有视图的通用文件。所以我将此文件移动到view / application文件夹。

但是当我这样做时,我不得不将我的行动改为:

format.js { render "application/index" }

为什么我必须这样做?默认是查看应用程序文件夹吗?

1 个答案:

答案 0 :(得分:0)

它考虑"观点/应用"作为另一个控制器的视图,不是ApplicationController视图。如果您在不同的控制器之间共享视图,将它放在views/shared下并从那里调用它会更合乎逻辑,并防止这种含义重叠。如果只将action_name作为参数传递给渲染函数,Rails只会尝试在controller_name/action_name.format下加载该文件