Ошибка при обновлении записи с использованием Formtastic в шаблонах HAML - PullRequest
1 голос
/ 02 марта 2010

Я использую formatastic в форме HAML.

- semantic_form_for @company do |f|
  - f.inputs do
    = f.input :description 
    = f.input :type 
    = f.input :industry 
    = f.input :hq 
    = f.input :products 
    = f.input :subsidiaries 
    = f.input :employees 
    = f.input :revenue 
    = f.input :net_income 
  = f.buttons 

Когда я пытаюсь сохранить существующую запись, я получаю сообщение об ошибке.

Template is missing
Missing template companies/update.erb in view path app/views

Я недавно переместил форму из ERB в HAML. Форма используется для работы в ERB.

Как мне исправить эту проблему?

Редактировать

Я решил проблему. Это не связано с HAML или Formtastic. Я передавал блок методу save, и это вызвало проблему. Смотрите мой ответ ниже для деталей.

Ответы [ 3 ]

1 голос
/ 02 марта 2010

Я нашел причину этой ошибки. Я повторно использовал некоторый код в контроллере из другого проекта, где я использовал плагин OAuth. Плагин OAuth требует, чтобы вы передали блок методу ActiveRecord save. Ванильный ActiveRecord save не поддерживает блоки. После того как я снял блоки все работает. Оригинальный код:

  def update
    @company.attributes = params[:company]
    @company.save do |result|
      if result
        flash[:notice] = "Successfully updated company."
        redirect_back_or_default root_url
      else
        render :action => 'edit'
      end
    end
  end

Некоторые справочные материалы:

Артикул 1

Статья 2

1 голос
/ 02 марта 2010

Вы установили плагин Rails для Haml?

0 голосов
/ 02 марта 2010

Rails ищет файл представления в app / views / companies / с именем update.something.erb (возможно, update.html.erb).Я думаю, у вас есть файл update.html.haml, поэтому вы получаете сообщение об ошибке.

В любом случае, это не имеет ничего общего с Formtastic извините.

Какие файлы вы перечислили в app / views / companies?

...