相关疑难解决方法(0)

json erb模板找不到其他html偏

我正在尝试使用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') %>"
  }
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

  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")
Run Code Online (Sandbox Code Playgroud)

似乎JSON请求在其名称中使用.json.erb呈现部分但不是.html.erb,这就是我所拥有的.有没有办法让我指定'html'.

ADDED:如果请求是'js',并且在index.js.erb中我渲染了几乎相同的代码:#index.js.erb

  disclaimer = {
     "html":"<%= raw escape_javascript(render :partial => 'projects/disclaimer') %>"
  }
Run Code Online (Sandbox Code Playgroud)

它确实找到了projects/disclaimer.html.erb并正确呈现它.我想知道为什么会出现这样的不一致,如果有人请求js,其模板中的任何部分渲染都会查找partial_name.html.erb但是如果请求json,部分渲染会要求partial_name.json.erb?

谢谢

json ruby-on-rails partial-views

10
推荐指数
2
解决办法
5177
查看次数

标签 统计

json ×1

partial-views ×1

ruby-on-rails ×1