我在jQuery中做了一个很好的编辑器,我想把它添加为一个表单助手方法。
我将如何制作新的表单助手方法?
理想情况下,我可以致电:
f.nice_editor :field
答案 0 :(得分:9)
部分问题是:你在哪里放了nice_editor代码?我不认为在您的安装中直接编辑类ActionView :: Helpers :: FormBuilder是个好主意。相反,将您的代码放在app / helpers中的一个文件中。有几种方法可以向FormBuilder添加扩展方法。
例如,假设您有一个帮助文件items_helper.rb:
module ItemsHelper
# this is one way to define new instance methods
ActionView::Helpers::FormBuilder.class_eval do
def nice_editor(conf,*opts)
...
end
end
end
另外,请参阅此good discussion,其中显示了如何使用self.included()扩展FormBuilder。
答案 1 :(得分:6)
屈服于form_for
的对象是ActionView::Helpers::FormBuilder
的一个实例。所以你要做的就是在那里添加实例方法。
class ActionView::Helpers::FormBuilder
def custom_field(...)
...
end
end
答案 2 :(得分:1)
class ActionView::Helpers::FormBuilder
def nice_editor(conf)
#stuff to draw the editor
end
end
“conf”将从视图传递给它的所有符号选项。它适用于f。