【问题标题】:rails3: How to render json data to a .js view?rails3:如何将 json 数据呈现到 .js 视图?
【发布时间】:2012-02-10 04:04:30
【问题描述】:

我尝试按照answer 中的说明在 .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' %>");

这是我的另一个动作.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

【问题讨论】:

    标签: ruby-on-rails-3 json rails-3.1


    【解决方案1】:

    渲染 JSON 不需要 .js.erb 文件。你需要做的就是

    respond_to do |format|
      format.html # renders .html.erb
      format.json { render :json => {:hash => @hash, :var => @var} }
    end
    

    或类似的东西。

    【讨论】:

    • 我也做了同样的事情,但这次我得到了一个 406 不可接受的错误。我的 URL:域/控制器/索引。请帮忙
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2016-09-12
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多