對於我的@line
模型,我有一個表單在我的NEW行頁面上作爲一個部分被包含時會完美工作,但會提高undefined method
爲空?當我的EDIT頁面上包含NilClass`時。導軌選擇不能在編輯頁面上工作
編輯頁面有:
<%= form_for(@line, :html => { :class => "form-horizontal"}) do |f| %>
<%= render 'form', f: f %>
<%= f.submit "Submit changes", class: "btn btn-primary" %>
<% end %>
形式看起來是這樣的(負的div):
<%= f.label :name, class: "control-label" %>
<%= f.text_field :name, placeholder: 'A relatively short line name' %>
<%= f.label :description, class: "control-label" %>
<%= f.text_area :description, placeholder: 'Full line name and any description' %>
<%= f.label :manufacturer_id, class: "control-label" %>
<%= f.select :manufacturer_id, options_from_collection_for_select(Manufacturer.all, :id, :name, {:selected => @line.manufacturer}) %>
<%= f.label :parent_id, class: "control-label" %>
<%= f.select :parent_id, @lines, {:selected => @line.parent, include_blank: true} %>
問題是與最後一個列表上選擇選項。我使用@lines
來填充所有現有行的下拉列表。我可能會改變這一點,使用AJAX來填充屬於上面選擇的製造商的行,但現在我只想讓編輯功能起作用。
我敢肯定這是一個明顯的錯誤,但沒有多少人在這裏看,閱讀文檔已找到解決方案。
如果它是有用的,這裏是我的控制器操作:
def edit
@line = Line.find(params[:id])
end
def update
@line = Line.find(params[:id])
if @line.update_attributes(line_params)
flash[:success] = "Line updated. #{undo_link}"
redirect_to @line
else
render 'edit'
end
end