2010-08-24 103 views
1

有一個類似於RailsCasts ActiveMerchant tutorial的交易模式。使用ActiveMerchant響應強制假響應

如何創建假回覆?

試過類似下面的東西,但沒有運氣。

response = @success=true, @params = {"ref" => "123"}, @authorization = "54321", ... 

型號/ order_transaction.rb

class OrderTransaction < ActiveRecord::Base 
    belongs_to :order 
    serialize :params 

    def response=(response) 
    self.success  = response.success? 
    self.authorization = response.authorization 
    self.message  = response.message 
    self.params  = response.params 
    rescue ActiveMerchant::ActiveMerchantError => e 
    self.success  = false 
    self.authorization = nil 
    self.message  = e.message 
    self.params  = {} 
    end 
end 
+0

使用OpenStruct? – rogerdpack 2010-08-24 22:00:53

+0

是,是,是。除response.success之外的所有內容?工作中。我像上面一樣使用它。 response = OpenStruct.new,然後傳入response.success = true – pcasa 2010-08-24 22:31:10

回答

0

,你可以這樣做

a = OpenStruct.new 
def a.success? 
true 
end 
+0

謝謝。從來沒有新的OpenStruct。 – pcasa 2010-08-25 13:21:02

+2

請注意,您可以使用「成功?」作爲構建OpenStruct時的成員名稱: OpenStruct.new('success?'=> true) – esad 2012-04-25 20:19:30

+0

非常聰明@esad ...像一個魅力 – cph2117 2015-03-10 16:01:47