我在軌道上4.如何列出要在第二個模型中選擇的一個模型的所有記錄?
我有一個模型features
有一個只能由我創建的記錄列表。我有另一個型號houses
,用戶可以創建。
我想列出所有的features
爲新的house
的形式複選框,以便用戶可以選擇他們想要附加到他們的house
。我也有一個連接模型house_features
,將兩者聯繫起來,因爲許多houses
可以有許多不同的features
。
我house
型號:
has_many :house_features, dependent: :destroy
has_many :features, through: :house_features
accepts_nested_attributes_for :house_features
我feature
型號:
has_many :house_features
has_many :houses, through: :house_features
我house_feature
型號:
belongs_to :house
belongs_to :feature
在我的新house
形式我有
<%= form_for @house do |f| %>
<% Features.all.each do |feature| %>
<%= f.fields_for :house_features do |h| %>
<%= h.label :feature_id, feature.name %>
<%= h.check_box :feature_id, {}, feature.id %>
<% end %>
<% end %>
<% end %>
在我houses
控制器我有我的新動作@house.house_features.build
,我必須設置爲'house_features_attributes的house_params:[:ID,:house_id,:FEATURE_ID]
現在,新house
頁面上,該顯示feature
記錄複選框列表。如果我選擇一些並提交表單,然後返回編輯房屋,我最終會爲每個feature
列出一些額外的複選框,並且複選框的數量與我在創建時選擇的功能數量相對應。
這是怎麼發生的?我應該做/改變來解決這個問題嗎?
我希望我的用戶能夠編輯他們的房屋並添加或刪除功能。
感謝
感謝響應,這會使編輯頁面上的多個複選框問題消失,但是,由於不會創建house_feature記錄,因此不會保存任何內容。 – oobie11 2014-09-21 00:59:50