我创建了一个为Rails的fields_for方法添加功能的rails gem,我希望它可以从任何表单构建器调用。为了保持简洁,可继承(从form_for,nested_fields_for等)到向后兼容,我开始认为重写fields_for方法是最好的方法。Ruby/Rails:重写rails方法的正确方法是什么?
虽然我之前没有这样做,我可以想象一些丑陋的问题。具体来说:
我需要在新的一个调用原始fields_for方法(通过alias_method)。如果Rails改变了这种方法在将来的工作方式,我猜我的创业板将打破所有fields_for功能(?)
如果另一个gem重写fields_for,我怀疑我或其他gem的fields_for方法将被忽略(?)
一般来说,覆盖现有导轨方法的想法看起来很狡猾。
我确定这是其他开发者面临的问题,我只是想知道 - 覆盖rails方法的标准方法是什么?它是更好的开发人员中的一个大禁忌吗?是否有另一种解决这类问题的方法?我是否应该只是简单而优雅的解决方案,然后用不同的方法命名呢?
任何建议表示赞赏。
您不需要在超类中别名方法。只要叫超级。 ruby super在父类中调用相同的方法。 –