我正在创建一个 Rails gem,它为 Rails 的 fields_for 方法添加了功能,我希望它可以从任何表单构建器中调用。为了保持简洁、可继承(从 form_for、nested_fields_for 等)和向后兼容,我开始认为重写 fields_for 方法是最好的方法。
不过,我以前没有这样做过,我可以设想一些丑陋的问题。具体来说:
我需要在新的方法中调用原始的 fields_for 方法(通过 alias_method)。如果 Rails 将来改变该方法的工作方式,我猜我的 gem 会破坏所有 fields_for 功能(?)
如果另一个 gem 覆盖 fields_for,我怀疑我的或其他 gem 的 fields_for 方法将被忽略(?)
一般来说,覆盖现有的 rails 方法的想法似乎很狡猾。
我确定这是其他开发人员面临的问题,我只是想知道 - 覆盖 rails 方法的标准方法是什么?在优秀的开发人员中,这是一个大禁忌吗?有没有另一种方法来解决这类问题?我是否应该放弃尝试简洁、优雅的解决方案并使用不同的方法名称来完成它?
任何建议表示赞赏。