我想扩展原生form_for方法,使其编译隐藏的额外输入。 我已经在表单构建器中添加了额外的自定义字段,但我找不到一种干净的方法来真正扩展form_for为其添加额外的行为。
我想干净地知道的是:
form_for ......:my_custom_attribute =>真
如果my_custom_attribute为true,则form_for必须生成一个额外的隐藏字段。
实现此行为的最佳方式是什么?
我在轨道3.1上。
答案 0 :(得分:3)
我写了一篇关于类似主题的博文,可能会帮助你:http://davidsulc.com/blog/2011/05/01/self-marking-required-fields-in-rails-3/
您可能想要尝试的是
config/initializers/form_builder.rb
alias :orig_form_for :form_for
form_for
方法以调用原始文件,并在必要时添加额外字段(例如,基于对象类或选项)您可以找到有关FormBuilders工作方式的有用指南:http://code.alexreisner.com/articles/form-builders-in-rails.html
自定义FormBuilder的一个示例:http://code.alexreisner.com/code/informant.html