0
首先,讓我感謝你,如果你花時間看這個。謝謝 :)。我的一個嵌套資源沒有被創建
所以,我終於想出瞭如何在頂部資源的_form.html.erb中正確嵌套資源。我的最終項目從上到下將具有以下嵌套資源:IDF => Switches => Jacks。目前,我所擁有的一切,通過創建一個新的插孔......這給了我下面的錯誤工作起來:
NoMethodError in Jacks#new
Showing /var/rails/network/app/views/jacks/_form.html.erb where line #1 raised:
undefined method `model_name' for NilClass:Class
Extracted source (around line #1):
1: <%= form_for [@switch, @jack] do |f| %>
2: <% if @jack.errors.any? %>
3: <div id="error_explanation">
4: <h2><%= pluralize(@jack.errors.count, "error") %> prohibited this jack from being saved:</h2>
我所有的車型都是腳手架,我還沒有觸及他們的許多文件,除模型關聯,控制器修復路線以及_form.html.erb文件。我會發布我認爲相關的代碼,但如果有其他任何可以幫助您的話,那麼請讓我知道。
應用程序/控制器/ jacks_controller.rb:
...
def new
@jacks = Jack.new(:switch_id => params[:switch_id])
respond_to do |format|
format.html # new.html.erb
format.json { render :json => @jack }
end
end
...
應用/視圖/開關/ _form.html.erb:
<%= form_for [@idf, @switch] do |switch_form| %>
<% if @switch.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@switch.errors.count, "error") %> prohibited this switch from being saved:</h2>
<ul>
<% @switch.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= switch_form.label :title %><br />
<%= switch_form.text_field :title %>
</div>
<div class="field">
<%= switch_form.label :model %><br />
<%= switch_form.text_field :model %>
</div>
<% switch_form.fields_for :jacks do |jack_form| %>
<p>
<div class="field">
<%= jack_form.label :port, 'Port:' %>
<%= jack_form.text_field :port %>
</div>
<div class="field">
<%= jack_form.label :jack_number, 'Jack Number:' %>
<%= jack_form.text_field :jack_number %>
</div>
<div class="field">
<%= jack_from.label :room_number, 'Room Number:' %>
<%= jack_form.text_field :room_number %>
</div>
<% unless jack_form.object.new_record? %>
<div>
<%= jack_form.label :_delete, 'Remove:' %>
<%= jack_form.check_box :_delete %>
</div>
<% end %>
<p>
<% end %>
<div class="actions">
<%= switch_form.submit %>
</div>
<% end -%>
應用/視圖/插孔/ _form.html.erb:
<%= form_for [@jack.switch, @jack] do |f| %>
<% if @jack.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@jack.errors.count, "error") %> prohibited this jack from being saved:</h2>
<ul>
<% @jack.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :port %><br />
<%= f.number_field :port %>
</div>
<div class="field">
<%= f.label :jack_number %><br />
<%= f.text_field :jack_number %>
</div>
<div class="field">
<%= f.label :room_number %><br />
<%= f.text_field :room_number %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我已經嘗試實現從一對夫婦的堆棧溢出類似的問題一些代碼,但似乎沒有任何工作。任何幫助將非常感激。另外,如果您想查看其他代碼,請告訴我。
再次感謝!
這是一個錯誤的例子或你的實際代碼?在構建對象時有「@jacks」,但在您的json呈現語句中爲「@jack」 – Bryan
是的。這就是我在切換到單線之前的原始狀態。我想你也一樣,但我原本:開關= Switch.find(PARAMS [:switch_id]) 插孔= switch.jacks.new 我認爲這不是你應該建的地方對象,但我也嘗試過。還是行不通。 –
這絕對是一個錯字。仍然出現錯誤,但這是一個新問題。我會讓你知道,如果我得到它的工作或需要更多的幫助。謝謝! –