[英]Rails MonkeyPatch changes not being picked up
我正在尝试在我的实现中“ MonkeyPatch” 此控制器,以便它可以处理第三个参数(“ productname”)。
gem中的原始激活方法读取
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 / monkeys / 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
这是行不通的-我仍然收到subscriptions#activate (ArgumentError) "wrong number of arguments (2 for 3)"
,这是由于我的用户方法(请参见下文)使用的是productname
而不是从非猴子补丁版本获取它。 有人可以告诉我为什么将文件放入lib无法正常工作吗? 谢谢!
这是用户方法:
def self.activate(token, id, productname)
user = User.find( id )
user.token = token
user.status = 'active'
user.package = productname
user.save!
end
我将Monkeypatch放在config / initializers / sassysimple.rb中
User#activate
? 例如grep。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.