backbone.js 和处理来自 Rails 的错误消息?

发布于 2024-11-06 20:20:57 字数 202 浏览 1 评论 0原文

我想知道backbone.js 用户是否可以帮助我?

与backbone.js一起使用时,对来自rails应用程序的错误消息进行编码的最佳方法是什么,例如那些曾经定义为闪存消息的错误消息,例如“未找到记录”。

大多数情况下,错误可以在客户端中定义,但是,有时您希望传递在服务器端代码中定义的错误,这意味着服务器的结果与正常接收记录列表的预期结果不同一个集合。

I wonder if backbone.js users could please help me?

What is the best way to encode error messages from a rails app when used with backbone.js for example those error messages that were once defined as flash messages eg "record not found".

Most of the time errors can be defined in the client, however, sometimes you want to pass a error that you have defined in the server side code, which means the result from the server is different than expected from normally receiving a list of records into a collection.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泛滥成性 2024-11-13 20:20:57

如果您将 Rails 控制器设置为:

respond_to :json

您将收到 json 形式的错误(您需要使用 respond_with(object) )

class XYZController < ApplicationController
  respond_to :html, :json
  responders :jsons
  def create
    @xyz = Xyz.new( params[:xyz] )
    @xyz.save
    respond_with @xyz, :location=>@xyz.id.nil? ? "" : edit_xyz_url(@xyz)
  end
end

我创建了 json 响应器以更好地处理主干:

module Responders

  module JsonResponder 

    def to_json
      raise error unless resourceful?

      if get?
        display resource
      elsif has_errors?
        display resource.errors, :status => :unprocessable_entity
      elsif post?
        display resource, :status => :created, :location => api_location
      elsif put?
        display resource, :status=>:ok, :location => api_location
      elsif has_empty_resource_definition?
        display empty_resource, :status => :ok
      else
        head :ok
      end
    end
  end
end

If you set your rails controller as:

respond_to :json

You will receive your errors as json (you need to use respond_with(object) )

class XYZController < ApplicationController
  respond_to :html, :json
  responders :jsons
  def create
    @xyz = Xyz.new( params[:xyz] )
    @xyz.save
    respond_with @xyz, :location=>@xyz.id.nil? ? "" : edit_xyz_url(@xyz)
  end
end

I created my json responder to better deal with backbone:

module Responders

  module JsonResponder 

    def to_json
      raise error unless resourceful?

      if get?
        display resource
      elsif has_errors?
        display resource.errors, :status => :unprocessable_entity
      elsif post?
        display resource, :status => :created, :location => api_location
      elsif put?
        display resource, :status=>:ok, :location => api_location
      elsif has_empty_resource_definition?
        display empty_resource, :status => :ok
      else
        head :ok
      end
    end
  end
end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文