繁体   English   中英

Rails MonkeyPatch更改未获取

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM