ruby-on-rails - ActiveResource 错误处理

标签 ruby-on-rails ruby error-handling integration activeresource

我一直在寻找一段时间,但我还没有找到满意的答案。我有两个应用程序。 FrontApp 和 BackApp。 FrontApp 有一个事件资源,它模仿 BackApp 中的模型。所有模型级别的验证都在 BackApp 中进行,我需要在 FrontApp 中处理这些 BackApp 验证。

我有以下事件资源代码:

class RemoteUser < ActiveResource::Base
  self.site = SITE
  self.format = :json
  self.element_name = "user"
end

这模拟了如下模型

class User < ActiveRecord::Base

  attr_accessor :username, :password

  validates_presence_of :username
  validates_presence_of :password
end

每当我在前面的应用程序中创建一个新的 RemoteUser 时;我调用 .save 。例如:

user = RemoteSession.new(:username => "user", :password => "")
user.save

但是,由于密码为空,我需要将错误从 BackApp 传回给 FrontApp。这没有发生。我只是不明白如何成功地做到这一点。这一定是一个常见的集成场景;但似乎没有很好的文档?

我充当代理的 restful Controller 如下:

class UsersController < ActionController::Base
  def create
    respond_to do |format|
      format.json do
        user = User.new(:username => params[:username], :password => params[:password])
        if user.save
          render :json => user
        else
          render :json => user.errors, :status => :unprocessable_entity
        end
      end
    end
  end
end

我错过了什么?任何帮助将不胜感激。

干杯

最佳答案

从 Rails 源代码中我发现 ActiveResource 没有得到错误的原因是因为我没有将错误分配给 json 中的“错误”标签。它没有记录但需要。 :)

所以我的代码应该是:

render :json => {:errors => user.errors}, :status => :unprocessable_entity

关于ruby-on-rails - ActiveResource 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3094523/

相关文章:

ruby-on-rails - Rails 3 - 如果变量包含 URL 的一部分?

javascript - 在 Rails 中提交表单,无需重新加载页面

ruby-on-rails - 推送到Heroku时“different prefix”错误和“Lockfile is unreadable”错误

ruby - 从 ruby​​ 代码运行 RSpec 文件

c++ - 重载运算符 '<<' 的使用不明确(操作数类型为 'ostream'(又名 'basic_ostream<char>')和 'Person')

c++ - Qt异常处理——try catch

ruby-on-rails - 强制 Bundler 安装本地 Ruby 版本支持的 gems

Jquery Autocomplete Gem-将参数传递到数据库

sql - Rails:使用 Postgres 创建对象时重复 ActiveRecord::RecordNotUnique?

java - 报告基于 Java 的多线程应用程序中的错误