Я пытаюсь получить ответ json, в котором какое-то значение представляет собой html, представленный частичным
#projects_Controller.rb
def index
respond_to do |f|
f.json
end
end
# index.json.erb
{
"html":"<%= raw escape_javascript(render :partial => 'projects/disclaimer') %>"
}
Но я получаю следующую ошибку:
ActionView::Template::Error (Missing partial projects/disclaimer with {:handlers=>[:erb, :rjs, :builder, :rhtml, :rxml], :formats=>
[:json], :locale=>[:en, :en]} in view paths "c:/rails/app/views", "c:/rails/vendor/plugins/more/app/views", "C:/Ruby192/lib/ruby/gems/1.9.1/gems/devise-1.1.8/app/views")
Похоже, запросы JSONчастично отображает с именем .json.erb, но не .html.erb, что у меня есть.Есть ли способ для меня, чтобы указать «HTML».
ДОБАВЛЕНО: Если запрос является «JS», и в index.js.erb я рендеринг почти тот же код: # index.js.erb
disclaimer = {
"html":"<%= raw escape_javascript(render :partial => 'projects/disclaimer') %>"
}
он находит проекты / disclaimer.html.erb и отображает его правильно.Интересно, почему такая несогласованность заключается в том, что если кто-то запрашивает js, то любой частичный рендеринг в его шаблоне будет искать part_name.html.erb, но если один запрашивает json, частичный рендеринг будет запрашивать частичный_имя.json.erb?
Спасибо