我試圖在我的實現中'MonkeyPatch'this控制器,以便它可以處理第三個參數('productname')。未找到Rails MonkeyPatch更改
在寶石原激活方法讀取
def activate
if Digest::MD5.hexdigest(params["security_data"] + SaasySimple.config.secret) == params["security_hash"]
SaasySimple.config.model.activate(params['token'], params['id'])
end
end
我的整個新的文件,放置在LIB /猴/ sassysimple.rb,讀取
module SaasySimple
class SubscriptionsController < ApplicationController
def activate
if Digest::MD5.hexdigest(params["security_data"] + SaasySimple.config.secret) == params["security_hash"]
SaasySimple.config.model.activate(params['token'], params['id'], params['productname'])
end
end
end
end
這不是工作 - 我m仍然得到了subscriptions#activate (ArgumentError) "wrong number of arguments (2 for 3)"
的錯誤,我相信這是由於我的用戶方法(見下文)期望productname
,但沒有從un-monkeypatched版本中獲得。有人可以告訴我爲什麼把文件放在lib中不起作用嗎?謝謝!
這是用戶的方法:
def self.activate(token, id, productname)
user = User.find(id)
user.token = token
user.status = 'active'
user.package = productname
user.save!
end
我也試過這個...無濟於事我害怕。 – Nick
然後嘗試創建一個新的控制器,用您的方法擴展SaasySimple :: SubscriptionsController – wrdevos
此外,不確定是否擴展ApplicationController在猴子補丁中工作,這是不必要的 – wrdevos