ruby-on-rails - 向 Active Resource 类添加非静态自定义方法的正确方法

标签 ruby-on-rails ruby activeresource

我的路线是这样的:

/orders/preview

它返回如下内容:

<order><total>100</total></order>

我想将此方法添加到事件资源类中。执行此操作的最佳方法是什么?

我开始做这样的事情:

class Order < ActiveResource::Base
  def self.preview(params = {})
    post(:preview, params)
  end
end

这似乎有效,但我得到的是 Net::HTTP 响应而不是 Order 对象。我做错了什么?

最佳答案

我在处理不同的格式时遇到了类似的问题......我已经通过明确说明我想要使用的格式来解决这个问题:

在ActiveResource模型中,设置self.format参数

class Order < ActiveResource::Base
    self.site = "http://lbv.me"
    self.format = :json  
end

在 ActiveRecord 模型中,如果您使用“respond_with”方法,您实际上必须说明您希望它响应的格式,如下所示:

class UsersController < ApplicationController
respond_to :html, :json

def show
   @user = User.find(params[:id])
   respond_with @user
end
.
.
.
end

关于ruby-on-rails - 向 Active Resource 类添加非静态自定义方法的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8159538/

相关文章:

ruby-on-rails - 在不暴露 API 密码的情况下在 Travis CI 中使用 API 身份验证运行测试

mysql - rails 5 mysql 适配器问题

ruby-on-rails - 安装 pg -v 0.17.1

ruby-on-rails - rails 3 : ActiveResource custom method call - ClientError 414 - Work around?

javascript - Rails active_resource 需要 JS 通过 link_to 来删除?

ruby - 在 ActiveResource 中设置站点/用户字段

c# - 使用 C# 将 HTTP POST 发送到 Rails 3

ruby-on-rails - rails 如何引用模型中的当前对象

Ruby 子类命名空间与父类

ruby-on-rails - ruby on rails : ratyrate on rails 5? 迁移错误中止