Pla*_*Ton 0 ruby ruby-on-rails
我只是开始修改扩展rails框架,作为一个实验,我想我会在form_for帮助器中添加一些额外的信息.具体来说,当调用form_for时,我想生成一个额外的h1标签,例如:
# regular form_for <form> opening tag
<h1>Woohoo! It's added!</h1>
# tags fed into form_for via &proc
# form_for close <form> tag
Run Code Online (Sandbox Code Playgroud)
目前我添加了一个/ lib文件,打开ActiveRecord :: FormHelper并覆盖"form for".不用说写出整个form_for方法只添加了一行添加的狗是丑陋的...但我不能调用super()因为,好吧,而不是继承我想要super()的方法,我刚刚在/ lib中覆盖了它.
所以,假设我固执地希望通过相同的form_for标签调用功能(而不是例如extended_form_for),那么回调到我覆盖的原始form_for方法的标准方法是什么?alias_method_chain?以为在我搞一些可能糟糕的做法之前我会问.如果任何坚强的退伍军人可以举一个例子我会感激.
干杯
你可以覆盖form_for你的ApplicationHelper:
module ApplicationHelper
def form_for(*)
content_tag(:h1, "Woohoo! It's added!") + super
end
end
Run Code Online (Sandbox Code Playgroud)