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重新加载类时,初始化程序中的控制器猴子补丁会丢失所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)