我有一個belongs_to
關聯事件對象location
:更新對象關聯belongs_to的創建新對象
class Event < ActiveRecord::Base
belongs_to :location
accepts_nested_attributes_for :location
end
以我事件形式I使用嵌套的屬性來顯示位置的形式。從events/_form.html.erb
的位置形式相關位:
<%= f.fields_for :location do |lf| %>
<%= f.label 'Location', :class => 'control-label' %>
<%= lf.text_field :name %>
<%= lf.text_field :address %>
<% end %>
我創建一個新的事件如下:
def new
@event = Event.new
@event.build_location
end
然而,當我修改這個新創建的記錄的位置,位置記錄不會被編輯,而是將新的位置記錄插入到數據庫中。
我的問題是,如何確保在編輯位置(從父Event窗體)時,它將更新屬於位置對象的屬性,而不是創建新的Location對象。
快速的問題位置有許多事件中,粘貼您的視圖code.Do你想要的位置應該在每一個事件或創建事件位置創建應該從現有的 – Amar
用戶可以選擇選擇列表中的位置。如果該位置尚未存在,則應該創建該位置。如果它在列表中,則只應保存關聯。 –
你的'Location'類是否有一個根據'has_many:events'或'has_one:event'在裏面? – rudolph9