ActionView::MissingTemplate: Rails не ищет формат JSON

Я использую Backbone.js и, таким образом, загружаю данные с помощью партиала JSON (jbuilder) следующим образом (используя HAML):

App.users = new App.UserList(#{render('users/index', :formats => [:json], :handlers => [:jbuilder], locals: {users: @users})})}, {silent:true});

Это дает мне эту ошибку:

ActionView::Template::Error (Missing partial users/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :jbuilder, :arb, :coffee, :haml]}. Searched in:

Обратите внимание, что он ищет только формат «: html», несмотря на то, что я передал «formats: [: json]». Должен ли я делать что-то по-другому?

Спасибо за любую помощь.


person kmurph79    schedule 17.05.2012    source источник


Ответы (1)


Какую версию Rails вы используете? Эта проблема была исправлена ​​в версии 3.2.3, но существует и в более ранних версиях.

Для быстрого исправления, хотя это вызовет предупреждения об устаревании в Rails 3.2 и более поздних версиях, вы можете добавить формат к имени шаблона, то есть render('users/index.json' ...

person x1a4    schedule 17.05.2012
comment
Спасибо. Я понял, что проблема была в _index.json.jbuilder — я вызывал json.partial! без передачи формата ... поэтому я добавил «.json.jbuilder» к имени, и все заработало нормально. - person kmurph79; 18.05.2012