簡體   English   中英

Rails 3中的自定義表單生成器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM