Использование Ruby 2.1.1 Rails 4.1.4
Hi,
Я ломал голову над действительно странной проблемой, которую я вижу с FormHelper. Я просто пытаюсь создать форму, используя form_for
, и получаю ошибку cannot call new for nil class
, когда представление пытается отобразить. Через обратную трассировку я обнаружил, что проблема на самом деле в:
ActionView::Helpers::FormHelper#instantiate_builder:1145-1146
builder = options[:builder] || default_form_builder
builder.new(object_name, object, self, options)
default_form_builder
определяется следующим образом в ActionView::Helpers::FormHelper
def default_form_builder
builder = ActionView::Base.default_form_builder
builder.respond_to?(:constantize) ? builder.constantize : builder
end
Я не добавлял построитель пользовательских форм и просто пытаюсь использовать значение по умолчанию. Когда я проверяю, что такое ActionView::Base.default_form_builder
, я получаю ноль.
Два решения, чтобы заставить его работать на меня, были:
- Передайте объект Form Builder в хэш form_for options[:builder]
- Добавьте следующую строку в конфигурацию моей среды
config.action_view.default_form_builder = ActionView::Helpers::FormBuilder
Я использую 2) на данный момент, но оба они не должны быть необходимы.
Я посмотрел везде, но не повезло с тем, что происходит. Спасибо за любую помощь!