2014-03-01 84 views
-1

我想弄清楚一次創建多個數據庫條目的最簡潔的方法(或者它甚至是一個好主意)。Rails一次創建多個條目

通過event_bands和event_venues模型,我有一個事件模型,其中有很多樂隊和很多場地。

現在,用戶首先創建事件,然後被重定向到表單以創建event_band和event_venue關係。我想如果可能的所有這一切簡化成一種形式,像這樣(底線是最相關的):

<%= form_for @event do |f| %> 
    <%= f.label :name %> 
    <%= f.text_field :name %><br /> 
    <%= f.label :contact %> 
    <%= f.text_field :contact %><br /> 
    <%= f.label :price %> 
    <%= f.text_field :price %><br /> 
    <%= f.label :info %> 
    <%= f.text_area :info %><br /> 
    <%= f.label :date %> 
    <%= f.date_select :date, start_year: 2014 %><br /> 
    <%= f.label :time %> 
    <%= f.text_field :time, placeholder: "7:40pm" %><br /> 

    <%= f.label :band %> 
    <%= select(:event_band, :band_id, options_for_select(Band.order(name: :asc).collect { |b| [b.name, b.id]})) %><br /> 
    <%= f.label :venue %> 
    <%= select(:event_venue, :venue_id, options_for_select(Venue.order(name: :asc).collect { |v| [v.name, v.id]})) %><br /> 

    <%= f.submit %> 
<% end %> 

因爲event_bandevent_model需要event.id,我想我將不得不使用一個after_create回調建立並保存它們。我將這個概念化的問題是我想通過事件的表單發佈這些額外的:band_id:venue_id參數。

有沒有一種更清晰的方式來處理多個模型的發佈參數,通過一種形式,然後在回調中使用它們,還是我朝着錯誤的方向走?

回答