2010-03-08 2 views
0

Я начал играть с бета-версией 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 линии. Я использую библиотеку Mootools для своего javascript, и я еще не опробовал новые нерегулярные крючки, которые предоставляют рельсы 3, поэтому я все еще пишу их вручную. Вот запрос javascript, который срабатывает при нажатии на ссылку «новая» на странице. В Mootools атрибуты обновления Request.HTML обновляют div, которые я имею в HTML, с идентификатором «main».

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 файл, который я не имею. В предыдущих версиях рельсов это было бы не так, и он автоматически ответил бы с помощью new.html.erb. Если я удалю строку format.js в контроллере, он откликнется, но я не хочу, чтобы ответ имел макет при вызове через javascript.

Есть ли что-то, что изменилось в Rails 3 beta?

ответ