我已閱讀了許多關於此的帖子,我仍然感到困惑。我對Rails比較陌生。我在Rails 3.2.8和Ruby 1.9.3上。嵌套的Rails窗體字段不呈現
我有一個表格,我想爲2個不同的表創建一個記錄。這是一個多對多的關係(日誌可以有多個飛機和飛機出現在多個日誌中)。
這裏是我的代碼:
# ----- Models ----- #
class Logbook < ActiveRecord::Base
has_and_belongs_to_many :aircrafts
accepts_nested_attributes_for :aircrafts
end
class Aircraft < ActiveRecord::Base
belongs_to :logbook
end
# ----- Logbooks Controller ----- #
def my_method
@logbook = Logbook.new
@aircraft = Aircraft.new
end
# ----- View ----- #
<%= form_for @logbook, validate: true, remote: true do |f| %>
<%= f.label :flight_date, "Flight Date" %>
<%= f.text_field :flight_date %>
...
<%= f.fields_for :aircrafts, validate: true, remote: true do |a| %>
<%= a.label :aircraft_id, "Aircraft ID" %>
<%= a.text_field :aircraft_id %>
...
<% end %>
<% end %>
的日誌字段繪製精細,但飛機字段不渲染。
任何想法?
OP,絕對使用像這裏展示的aircrafts.build,就像我所做的那樣,「Aircraft.new」。不知道爲什麼我沒有提到構建。我認爲我有一個大腦失誤。 – agmcleod
感謝您的回覆。所以如果我像你指示的那樣調整我的控制器,這個'f.fields_for:飛機'是否需要改變爲'f.fields_for @ aircraft'? –
不這樣,你可以在'fields_for'中指定'@ aircraft'作爲第二個參數,更多關於[ActionView :: Helpers :: FormHelper#fields_for](http://api.rubyonrails。組織/類/的ActionView /助手/ FormHelper.html#方法-I-fields_for) – daniloisr