RoR 3 - переопределить значение FormBuilder по умолчанию f.submit в кнопку - PullRequest
1 голос
/ 29 сентября 2010

У меня есть форма, и для макета (и будущего использования) я хотел бы знать, как изменить стандартную f.submit, которая генерирует:

В HTML-тег, который не должен выдавать ошибок.

Теперь у меня есть расширение на формбилдере

На мой взгляд:

   <%= form_for resource, :as => resource_name, :url => session_path(resource_name),  :class => "form with-margin", :builder => AppFormBuilder do |f| %>
   ...
   <%= f.submit %>
   <% end %>

В моем lib / appformbuilder:

class AppFormBuilder < ActionView::Helpers::FormBuilder
  def submit(text, options = {})
    options[:type] = "submit"
    @template.content_tag(:button, text, options)
  end
end

Но это дает мне ошибку:

NameError in Devise/sessions#new

Showing d:/Projects/Websites/Ruby On Rails/fact-it/app/views/devise/sessions/new.html.erb where line #11 raised:
uninitialized constant ActionView::CompiledTemplates::AppFormBuilder


8:         
9:       <p class="message error no-margin alert"><%= alert %></p>
10:       <p class="notice"><%= notice %></p>
11:       <%= form_for resource, :as => resource_name, :url => session_path(resource_name), :class => "form with-margin", :builder => AppFormBuilder do |f| %>
12:         <p><%= f.label :email %><br />
13:         <%= f.text_field :email %></p>
14: 

1 Ответ

3 голосов
/ 29 сентября 2010

Вам нужно поместить эту переменную в lib/app_form_builder.rb, если вы хотите использовать автозагрузку рельсов.

Внимание! В Rails 3 автозагрузка по умолчанию больше не существует. Вам нужно добавить этот каталог автозагрузки в ваше приложение. Rb

...