Я пытаюсь использовать контроллер MonkeyPatch this в моей реализации, чтобы он мог обрабатывать третий параметр ('productname').Rails Изменения в MonkeyPatch не собираются
оригинальный метод 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/обезьяны/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
, но не получает его из версии без обезьяны. Может ли кто-нибудь сказать мне, почему размещение файла в 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