++编辑以更改问题以部分递归地调用++
在这段简单的代码无效之后,经过很多天的挫折之后,我正在写这个问题。我已经阅读了很多关于在stackoverflow上传递部分的问题,并尝试了所有我能做到的解决方案,但它不起作用。 调用第一个循环的部分工作,但从第二个循环开始,它会发生错误 “ #<#:0x2f12670> ”的未定义局部变量或方法`count' 请注意,错误包含一个类中的类,因此在递归调用partial时会发生一些可疑的事情。
我有一个名为_form.html.erb的部分调用另一个部分_rule_action_fields.html.erb。我需要将一个变量从表单partial传递给rule_action_field partial,这里是代码:
_form.html.erb :(请注意,此处的构建器对象是从未粘贴的代码传递的)
<% @folder_count = 1 %>
<% @rule.rule_actions.each do |ruleaction| %>
<%= f.fields_for :rule_actions, ruleaction do |builder| %>
<%= render( :partial => 'rule_action_fields', :locals => { :f => builder, :count => @folder_count } ) %>
<% end %>
<% @folder_count = @folder_count + 1 %>
<% end %>
_rule_action_fields.html.erb
<p id="folder_fields">
<%= count %>
<label class="form_label">Move the files to </label>
<%= f.select(:folder_id, current_user.folders.collect { |p| [p.name,p.id] }, {:include_blank => true } ) %>
</p>
不幸的是,由于某些逻辑部分位于调用代码中,部分位于rule_action_fields partial中,因此我无法使用rule_actions集合调用此部分内容。
我尝试过的其他语法:
<%= render :partial => 'rule_action_fields',:f => builder, :locals => { :count => folder_count } %>
<%= render :partial => 'rule_action_fields', locals => { :count => folder_count } %>
<%= render 'rule_action_fields', :count => folder_count %>
有什么想法吗?