[英]Custom Form Builder in Rails 3
我正在嘗試在Rails中編寫自定義表單生成器,以(除其他功能外)將CSS類自動添加到我創建的每個字段中。
我想擴展例如text_field以添加到我需要的類中。 但是下面的代碼(我希望它會將行為傳遞給標准FormBuilder)失敗,並出現錯誤的參數數量錯誤。 “參數數量錯誤(1..2為3)”
class BootstrapFormBuilder < ActionView::Helpers::FormBuilder
def text_field(object_name, method, options = {})
super(object_name, method, options)
end
end
如果查看Rails源代碼,我會看到text_field的定義為:
def text_field(object_name, method, options = {})
請幫助! (如果您拋出代碼將“:class =>'some_class'”合並到選項哈希中,則獎勵積分。
謝謝!
您要引用的Rails源顯示text_field
有兩個參數,而不是三個。 請參閱來自github的FormBuilder
源代碼。
因此,將您的表單構建器類更新為:
class BootstrapFormBuilder < ActionView::Helpers::FormBuilder
def text_field(method, options = {})
super(method, options)
end
end
然后,它的用法,包括要添加的class
選項:
<%= form_for :foo, builder: BootstrapFormBuilder do |f| %>
<%= f.text_field :foo_field, class: 'bootstrap_text_field' %>
<% end %>
您傳遞給默認FormBuilder
任何選項也可用於此子類,因此,請像使用默認表單生成器一樣使用class
選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.