Rails 4.1.4 ActionView::Base Конструктор форм по умолчанию не существует

Использование 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, я получаю ноль.

Два решения, чтобы заставить его работать на меня, были:

  1. Передайте объект Form Builder в хэш form_for options[:builder]
  2. Добавьте следующую строку в конфигурацию моей среды config.action_view.default_form_builder = ActionView::Helpers::FormBuilder

Я использую 2) на данный момент, но оба они не должны быть необходимы.

Я посмотрел везде, но не повезло с тем, что происходит. Спасибо за любую помощь!


person user3029619    schedule 16.08.2014    source источник


Ответы (1)


У вас были gem 'extlib' и gem 'devise' в Gemfile?
Переместите gem 'extlib' строку под gem 'devise' строку.

Не знаю почему, но это сработает...

person rtsummit    schedule 05.02.2015