ruby-on-rails – 当rails重新加载类时,初始化程序中的控制器猴子补丁会丢失

ruby-on-rails – 当rails重新加载类时,初始化程序中的控制器猴子补丁会丢失,第1张

概述我试图在第三方宝石中修补补丁控制器类.确切地说,我正在尝试添加参数包装来设计控制器.在initializers / wrap_parameters.rb中,我添加了以下内容: Rails.application.config.after_initialize do DeviseController.class_eval do wrap_parameters :user, format: 我试图在第三方宝石中修补补丁控制器类.确切地说,我正在尝试添加参数包装来设计控制器.在initializers / wrap_parameters.rb中,我添加了以下内容:

Rails.application.config.after_initialize do  DeviseController.class_eval do    wrap_parameters :user,format: [:Json]  endend

它在应用程序启动时运行良好,但是当我修改其中一个控制器类时,参数包装会立即停止工作.好像在没有上述补丁的情况下重新加载控制器类.

如何使我的猴子补丁持久?

谢谢

解决方法 我之前遇到过类似的问题,试图在rails中加载延迟加载的monkeypatch代码.我能够通过将补丁包装在模块中然后在您正在编辑的类中扩展模块来修复它.在config / initializers中的新文件中会出现类似的情况:

module MyDeviseDecorator  wrap_parameters :user,format: [:Json]endclass DeviseController < Devise.parent_controller.constantize    extend MyDeviseDectoratorend

我可能有一个错误的设计类名称,它应该匹配你想要monkeypatch的任何东西.我不是100%这个方法会修复你的问题,就像它固定我的,但尝试一下;我会留下这个评论,但没有最低代表.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 当rails重新加载类时,初始化程序中的控制器猴子补丁会丢失全部内容,希望文章能够帮你解决ruby-on-rails – 当rails重新加载类时,初始化程序中的控制器猴子补丁会丢失所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1269882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存