我已經開始玩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測試版中是否有更改?