我正在使用rails ajax
.
公司帐户的简单表格是 -
= simple_form_for @company_account, :remote => true,
:url => company_account_path,
:method => :put do |f|
使用此表格,我正在创建、更新和删除区域和区域分支。
%div{ :id => 'branches_' + r.id.to_s}= render 'branches',f: f, r: region, company_account: @company_account
公司、地区和分公司之间的关系是:
company has_many: regions
region belong_to: company
regions has_many: branches
branches belongs_to: regions
在这种形式中,我有一个用于显示区域和分支机构的部分,它使用公司帐户的表单对象f
。所有这一切都很好。我能够创建新的区域分支。现在我正在尝试使用ajax
.
当此调用转到控制器时,我正在为公司帐户创建一个表单对象以呈现部分类似 -在我的控制器中
@f = view_context.simple_form_for @company_account, :remote => true,
:url => company_account_path,
:method => :put do |f|
render_to_string(:partial => 'company_accounts/branches', :locals => {f: f, r: @region, company_account: @company_account }).html_safe
end
并使用javascript作为响应传递这个@f对象 -
$('#branches_' + <%= @region.id%>).html('<%= escape_javascript @f %>');
$('#branches_' + <%= @region.id%>).show();
但不幸的是,作为回应,我收到了错误-
undefined method `capture_haml' for #<#<Class:0xbe53d68>:0xcf9cb24>
不知道我错过了什么。有人可以帮忙吗??
提前致谢。
更新:
这是回溯:
ActionView::Template::Error (undefined method `capture_haml' for #<#<Class:0xb9db2a4>:0xc953560>):
1: #inactive_branches
2: = f.simple_fields_for :regions, r do |reg|
3: %table.preferenceDetails
4: %tr
5: %td
app/views/company_accounts/_inactive_branches.html.haml:2:in `_app_views_company_accounts__inactive_branches_html_haml___356774371_104988750'
app/controllers/company_accounts_controller.rb:129:in `block in branches'
app/controllers/company_accounts_controller.rb:122:in `branches'