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