Вы можете создать пользовательский помощник по формам, который наследуется от FormBuilder для использования при создании форм.Я создал этот метод кнопки для использования с Bootstrap в Twitter.
Замените 'Bootstrap' на все, что подходит.(Возможно, CuteAsAButtonBuilder?)
app/helpers/bootstrap_form_builder.rb
class BootstrapFormBuilder < ActionView::Helpers::FormBuilder
def button(label, options={})
# You can also set default options, like a class
default_class = options[:class] || 'btn'
@template.button_tag(label.to_s.humanize, :class => default_class)
end
end
Теперь у вас есть два способа использовать конструктор.
1.СУХОЙ для уток
Каждый раз, когда вы строите форму, в которой используется кнопка, вам нужно указать построителя ...
<%= form_for @duck, :builder => BootstrapFormBuilder do |form|%>
2.DRY для разработчиков
Добавьте следующее
app/helpers/application_helper.rb
module ApplicationHelper
def bootstrap_form_for(name, *args, &block)
options = args.extract_options!
form_for(name, *(args << options.merge(:builder => BootstrapFormBuilder)), &block)
end
end
Просто позвоните волшебному строителю ...
<%= bootstrap_form_for @person do |form| %>
<%= form.button 'Click Me' %>
<% end %>