我尝试按照这个答案中的说明在.js.erb文件中呈现json数据。但我得到了这个错误:
ActionView::MissingTemplate (Missing template activities/json, application/json with {:handlers=>[:erb, :builder], :formats=>[:js, :html], :locale=>[:en, :en]}.
我有大量的数据要发送给用户,因此我想以json而不是text/html的形式发送。
这是我的控制器"some_controller.rb":
def some_action
@hash = ...
@var = ...
.
.
respond_to do |format|
format.js { render :json }
end
end
以下是我在views/some_controller/some_action.js.erb:中的观点
$("#some_div").html("<%=j render :partial => 'some_controller/another_action' %>");
这是我的另一个action.html.erb:
<%= self.formats = ["html"] %>
Var1 = <%= @var1 %>
Hash1 = <%= @hash1.inspect %>
上面链接中的答案是错的吗?我们不能将json数据发送到js.erb文件吗?我尝试使用.to_json转换变量和散列。例如:
@hash1 = someMethod(someParams).to_json
但是@hash1在我的最后一个html.erb中被呈现为一个字符串,当然无法解析!是我做错了什么还是遗漏了什么?
此外,在rails中没有json渲染的在线教程,有人能提供一些很好的学习链接以及json和rails吗?我们非常感谢您的帮助。提前谢谢。
谢谢,pR
呈现JSON不需要.js.erb文件。你所需要做的就是
respond_to do |format|
format.html # renders .html.erb
format.json { render :json => {:hash => @hash, :var => @var} }
end
或者类似的东西。