我已经开始玩Rails 3测试版了,我正在尝试执行我通常的启动项目。我创建了一个简单的项目列表,但使用Ajax请求导航应用程序。在Rails 3,我平时的代码不会为基本骨架的工作,我收到一个Ruby on Rails 3 Beta:在ajax获取请求时,我无法回应html.erb视图。有没有解决办法?
ActionView:MissingTemplate (Missing template projects/new with {:format=>[:js]}
这是我从我的项目控制器SNIPPIT:
# 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提供的新的unobtursive钩子,所以我仍然手动编写它。以下是在页面上点击“新建”链接时触发的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();
}
});
所以链接被点击时发生了什么,是控制器试图给JS调用与new.js.erb文件,我没有回应。在以前的rails版本中,情况并非如此,它会自动回复new.html.erb。如果我删除控制器中的format.js行,它会回应,但我不希望响应通过javascript调用时有布局。
Rails 3测试版中是否有更改?