Я использую 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
метод и это вызвали проблему. См. мой ответ вниз ниже для деталей.
Я нашел причину этой ошибки. Я повторно использовал код в контроллере из другого проекта, в котором я использовал плагин OAuth. Плагин OAuth требует, чтобы вы передали блок в метод ActiveRecord save
. Обычное сохранение ActiveRecord
не поддерживает блоки. Как только я удалил блоки, все работает.
Исходный код:
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
Некоторые справочные материалы:
Rails ищет файл представления в app / views / companies / с именем update.something.erb (вероятно, update.html.erb). Я предполагаю, что вместо этого у вас есть файл update.html.haml, поэтому вы получаете сообщение об ошибке.
В любом случае, это не имеет ничего общего с Formtastic, извините.
Какие файлы вы указали в app / views / companies?