ruby-on-rails - Rails respond_with 没有输出剩余调用的状态

标签 ruby-on-rails ruby rest ruby-on-rails-3

我正在尝试使用 respond_with 方法使用 rails 制作一个简单的 rest api,但它不想输出任何类型的状态消息

例如,我希望它不仅返回 get 调用的 json,还返回 ok 状态。当发布或删除有效/失败时也是如此。

一些教程建议使用额外的 :status 参数,但它们似乎根本不会影响输出。

  def index
    @conns = Connection.all
    respond_with(@conns, :status => :ok)
  end

这会返回与 :status => :ok 不存在时完全相同的内容。

有什么想法吗??

谢谢!

最佳答案

:status => :ok 设置 HTTP header 的状态代码,即它与 :status => 200 相同。如果你想向响应主体添加一些东西,你需要明确地添加它,例如

respond_with({:conns => @conns, :status => :success}.to_json)

编辑

好吧,那是行不通的。如果除了 JSON 之外你不需要响应任何东西,你可以只使用旧的render:

render :json => { :conns => @conns, :status => :success }

如果您必须使用明亮 Shiny 的新 respond_with 方法来适应多种响应类型,您可以创建一个响应 as_json 的类:

class JsonResponse
  def initialize(data,status)
    @data = data
    @status = status
  end
  def as_json(options={})
    {
    :data => @data,
    :status => @status
    }
  end
end

然后这样调用:

@conns = Connection.all
respond_with(JsonResponse.new(@conns,"success"))

关于ruby-on-rails - Rails respond_with 没有输出剩余调用的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4157529/

相关文章:

ruby-on-rails - 是否有可以与 RSpec(或 Cucumber)一起使用的工具来截取网页元素的屏幕截图?

ruby - 以编程方式在 Ruby 中获取桌面的屏幕截图?

java - 验证嵌套资源的路径

rest - 使用 GET 删除内容有什么问题?

ruby - "if"如何解释对象

database - RESTful URI 是否应该公开数据库主键?

ruby-on-rails - React-rails安装报错Webpacker configuration file not found

ruby-on-rails - Rails 和 Postgres HSTORE 属性类型

ruby-on-rails - Django 还是 Ruby-On-Rails?

ruby-on-rails - 减去两个时间范围