2011-01-22 2 views
0

Я пытаюсь выдать простой запрос ajax в виде рельсов (3.0.3) через link_to.Rails 3 ajax javascript rendering issue

<%= link_to "like", toggle_author_likes_path(current_author, post), :remote => true %> 

Идея этого в том, что действие в LikesController # пуговица будет сделать некоторые Javascript, чтобы изменить страницу после возвращения запроса. Довольно прямолинейный материал, не так ли?

Проблема, с которой я сталкиваюсь, заключается в том, что у действия, похоже, есть проблема с поиском нужного файла * .js.erb. Соответствующий фрагмент кода в # рычажного действия LikesController является:

respond_to do |format| 
    format.html { redirect_to post_path(@post) } 
    format.js 
end 

Когда я пытаюсь оформить этот запрос, действие выполняется, но запрос отвечает с 500 Internal Server Error. Текст ошибки:

Missing template likes/toggle with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>[:js, :html], :locale=>[:en, :en]}... 

У меня есть двойные и тройные проверил размещение моего файла _toggle.js.erb, и я уверен, что я назвал это правильно, и содержание является действительным (хотя это не важно, потому что он никогда не завершается).

Выполнение регулярного GET без какого-либо причудливого ajax в файле js возвращает ту же ошибку, поэтому вероятность того, что проблема лежит где-то вдоль цепочки рендеринга Rails.

Я не буду включать в себя остальную часть метода, поскольку это довольно многословно, и я уверен, что он не учитывает эту конкретную проблему, но если кто-то думает, что это важно, я опубликую его.

Спасибо!

EDIT: Исправлена ​​ошибка. Это была моя собственная глупая ошибка, я назвал представление наподобие частичного, с подчеркиванием перед ним. Удалено, и все это прекрасно работает. Идиот, идиот, идиот.

ответ

0

Вам нужно иметь отдельный шаблон, называемый toggle.rjs This RailsCast, хотя он немного устарел и все еще объясняет, что добавить в файл toggle.rjs.