我正在尝试使用普通的
渲染部分轨道<%=render 'subtasks/descform %> command
现在问题是这个descform partial是从另一个部分调用的,它是'子任务/子任务'并且它们有很多子任务。
因此,子任务部分也将从任务部分渲染,如此
<% task.subtasks.each do |subtask| %>
<%=render :partial=>subtask %>
<%end%>
所以问题在于desc形式,它有一个像这样的形式
<%=form_for subtask,:remote=>:true,:method => :put do |f| %>
<%= f.text_area :description,rows:'5',cols:'12',:class=>'myarea'%>
<%= f.submit "save",class:'btn btn-success col-md-4' %>
<a data-id='<%=subtask.id %>' href="#" class="myclose"><i class="fa fa-times fa-lg" style="margin:10px auto;"></i></a>
<% end %>
因此,当我尝试渲染此表单时,我收到错误
#&lt;#:0x458f6b8&gt;
的未定义局部变量或方法“子任务”有人可以解释这个错误的原因以及如何解决这个问题。
答案 0 :(得分:1)
将subtask
对象作为局部变量传递给descform
partial。首先是subask,然后是descform
<% task.subtasks.each do |subtask| %>
<%=render :partial => 'subtask', :locals => {:subtask => subtask} %>
<%end%>
在subtask
内部,将其传递给descform
<%=render :partial => 'subtasks/descform', :locals => {:subtask => subtask} %>
当你传入当地人时,你必须提到partial
。例如,以下内容不起作用
<%=render 'subtasks/descform', :locals => {:subtask => subtask} %>
答案 1 :(得分:1)
您只需要将变量传递给partial,如下所示:
<%=render 'subtasks/descform', :subtask => subtask %>
然后,您可以在部分subtask
答案 2 :(得分:0)
在任务部分:
<%= render :partial => "subtask", :collection => task.subtasks %>
在子任务部分中:
<%=render :partial => 'subtasks/descform', :locals => {:subtask => subtask} %>