我在HAML表单中使用formatastic
。
- 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。用于在再培训局工作的表格。
如何解决此问题?
我解决了这个问题。它与HAML或Formtastic无关。我正在将一个块传递给save
方法,这导致了问题。有关详细信息,请参阅下面的答案。
答案 0 :(得分:1)
你为Haml安装了Rails的插件吗?
答案 1 :(得分:1)
我找到了这个错误的原因。我在另一个使用OAuth插件的项目中重用了控制器中的一些代码。 OAuth插件要求您将块传递给ActiveRecord save
方法。 vanilla 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
一些参考资料:
答案 2 :(得分:0)
Rails正在app / views / companies /中寻找一个名为update.something.erb的视图文件(可能是update.html.erb)。我的猜测是你有一个update.html.haml文件,所以这就是你收到错误的原因。
无论哪种方式,这与Formtastic无关。
您在app / views / companies中列出了哪些文件?