2011-10-18 37 views
2

我想擴展本地form_for方法,使其編譯一個額外的輸入隱藏。 我已經爲表單生成器添加了額外的自定義字段,但是我沒有找到一個乾淨的方式來真正擴展form_for以向其添加額外的行爲。如何擴展rails form_for

我要清晰地知道是這樣的:

的form_for ......:my_custom_attribute =>真

如果my_custom_attribute是真實的form_for必須產生一個額外的隱藏字段。

什麼是最優雅的方式來實現這種行爲?

我在軌道3.1。

回答

3

我寫了一個類似的主題博客文章,這可能會幫助你:http://davidsulc.com/blog/2011/05/01/self-marking-required-fields-in-rails-3/

你可能想嘗試做什麼是

  1. 創建(例如)config/initializers/form_builder.rb
  2. 文件alias :orig_form_for :form_for
  3. 定義您的form_for方法來調用原始方法,並在必要時添加額外的字段(例如基於對象類或選項)

你會發現一個有用的指南,以FormBuilders是如何工作的:http://code.alexreisner.com/articles/form-builders-in-rails.html

和定製FormBuilder的例子:http://code.alexreisner.com/code/informant.html