我的路线看起来像这样:
/orders/preview
它返回类似:
<order><total>100</total></order>
我想将此方法添加到活动资源类中。这样做的最佳方式是什么?
我开始做这样的事情:
class Order < ActiveResource::Base
def self.preview(params = {})
post(:preview, params)
end
end
这似乎有效,但我得到Net::HTTP
回复而不是Order
对象。我做错了什么?
答案 0 :(得分:0)
我不确定POST
,但是如果你只想做GET
。你试过这个吗?
http://api.rubyonrails.org/v3.2.1/classes/ActiveResource/Base.html#method-c-find
Order.find(:all, :from => :preview)
# => GET /orders/preview.json
答案 1 :(得分:0)
我遇到了处理不同格式的类似问题...我已经通过明确说明我想要使用的格式来解决这个问题:
在ActiveResource模型中,设置self.format参数
class Order < ActiveResource::Base
self.site = "http://lbv.me"
self.format = :json
end
在ActiveRecord模型中,如果您使用&#39; respond_with&#39;实际上你必须说明你期望它回应的格式,例如:
class UsersController < ApplicationController
respond_to :html, :json
def show
@user = User.find(params[:id])
respond_with @user
end
.
.
.
end