我試圖在一個頁面內爲多個節使用表單部分。第一次,我通過「部分:」o「」,第二次通過「部分:」s「」。Ruby on Rails - 在傳遞兩個不同變量的同時傳遞部分兩次錯誤
它在我傳遞第一個變量時成功工作,但是第二次呈現表單部分時,它會生成一個「未定義的方法`人性化爲nil:NilClass」錯誤。
下面是的渲染追加的部分形式的一個例子:
<some form stuff here>
<%= render partial: "item_form", locals: {f: f, section: "o"} %>
<some form stuff here>
<%= render partial: "item_form", locals: {f: f, section: "s"} %>
這裏是一個的所呈現的_item_form.html.erb的一部分部分:
<% unless @item.paragraphs.empty? %>
<% @item.paragraphs.each do |paragraph| %>
<% field_type = "Paragraph" if paragraph.paragraph_type == "#{section}paragraph" %>
<% field_type = "Figure description" if paragraph.paragraph_type == "#{section}figure" %>
<% field_type = "Bullet" if paragraph.paragraph_type == "#{section}bullet" %>
<div class="form-group">
<%= f.label field_type, class: "col-sm-2 control-label" %>
,我得到的錯誤突出顯示了f.label行(上例中的最後一行),並將「nil:NilClass」的未定義方法`人性化'錯誤吐出。
任何想法這裏發生了什麼?如果我刪除第一個渲染,它仍然不起作用。如果我刪除第一個渲染並將第二個部分更改爲「o」而不是「s」,那麼它就可以工作。添加除了「o」以外的任何其他字母以將該部分擰緊。
啊,好的。我沒有發現它出於某種原因抱怨field_type。以爲這是在抱怨f。感謝您的建議。現在要走這條路。我想我可以根據你的幫助解決這個問題。再次感謝 – LewlSauce 2014-10-19 20:38:19