添加表单帮助程序方法

时间:2010-01-24 18:11:42

标签: ruby-on-rails plugins

我在jQuery中做了一个很好的编辑器,我想把它添加为一个表单助手方法。

我将如何制作新的表单助手方法?

理想情况下,我可以致电:

f.nice_editor :field

3 个答案:

答案 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。