【发布时间】:2013-05-22 11:01:38
【问题描述】:
我正在尝试在我的实现中使用“MonkeyPatch”this 控制器,以便它可以处理第三个参数(“productname”)。
gem中原来的activate方法是这样的
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
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 gem monkeypatching