0

我已经开始使用 Rails 3 beta,并且正在尝试做我通常的入门项目。我创建了一个简单的项目列表,但使用 ajax 请求进行应用导航。在 Rails 3 中,我常用的代码不适用于基本脚手架,我收到一个

ActionView:MissingTemplate (Missing template projects/new with {:format=>[:js]}

这是我的项目控制器的一个片段:

  # GET /projects/new
  # GET /projects/new.xml
  def new
    @project = Project.new

    respond_to do |format|
      format.html # new.html.erb
      format.js   { render :layout => false }
      format.xml  { render :xml => @project }
    end
  end

注意 format.js 行。我为我的 javascript 使用 Mootools 库,我还没有尝试过 rails 3 提供的新的不引人注目的钩子,所以我仍然手工编写它。这是在页面上单击“新”链接时触发的 javascript 请求。在 Mootools 中,Request.HTML 更新属性会更新我在 HTML 中具有 id 'main' 的 div。

a.addEvents({
    'click': function(e) {
        e.stop();
        console.log("Click for '" + a.get('href') + "'");

        new Request.HTML({
            url: a.get('href'),
            method: 'get',
            update: 'main',
            onRequest: function() {},
            onSuccess: function() {},
            onFailure: function(xhr) {},
            onComplete: function() {}
        }).send();
    }
});

所以当点击链接时发生了什么,控制器试图用我没有的 new.js.erb 文件响应 js 调用。在以前的 Rails 版本中,情况并非如此,它会自动回复 new.html.erb。如果我删除控制器中的 format.js 行,它会响应,但我不希望响应在通过 javascript 调用时具有布局。

Rails 3 beta 有什么改变吗?

4

1 回答 1

0

感觉就像 Rails 3 中的一切都改变了。:) 你安装了 Mootools 的驱动程序吗?

于 2010-03-09T19:38:16.050 回答