我有一個跟蹤調用的Rails 3.2.14應用程序,每個調用都有一個來自Facility關聯的Facility模型的Pickup和Dropoff工具。Rails動態更改集合在表單中選擇基於表單域
在呼叫模型中,有一個區域模型(即休斯頓,達拉斯,奧斯汀等)的關聯,我們根據呼叫的來源選擇區域。
我想要做的是能夠選擇特定的區域(即休斯頓),並在皮卡設施集合只顯示休斯頓地區的設施。
我假設,開始了與我需要設置爲這樣的設施和區域之間的關係:
facility.rb
attr_accessible :region_id
belongs_to :region
region.rb
has_many :facilities
然後,我需要設置每個設施與region_id匹配respecti (即休斯頓,達拉斯等),所以協會工作正常。
我不確定的是如何選擇特定的區域,只有在該區域的設施顯示在窗體中。我假設我會在這裏使用一些jQuery/JS/Ajax來實現它,但不知道如何使它工作。
這裏是什麼我的電話,設施和區域模型目前看起來像一個摘錄:
call.rb
belongs_to :transferred_from, :foreign_key => :transfer_from_id, :class_name => 'Facility'
belongs_to :transferred_to, :foreign_key => :transfer_to_id, :class_name => 'Facility'
belongs_to :region
facility.rb
has_many :calls_transferred_from, :foreign_key => :transfer_from_id, :class_name => 'Call'
has_many :calls_transferred_to, :foreign_key => :transfer_to_id, :class_name => 'Call'
region.rb
has_many :calls
這裏是什麼我的電話的形式部分看起來像一個摘錄:
_form.html.erb
<%= form_for(@call) do |f| %>
<%= f.label :region %>
<%= f.collection_select(:region_id, Region.all, :id, :area, {:include_blank => true}, {:class => 'select', required: true}) %>
<%= f.label :Transfer_From %>
<%= f.collection_select(:transfer_from_id, Facility.active.order("facility_name ASC"), :id, :facility_name, {:include_blank => true}, {:class => 'select'}) %>
<%= f.button "Submit", class: 'btn btn-info btn-large', data: {disable_with: "<i class='icon-spinner'></i>Processing..."} %>
<% end %>
如果任何這是混淆或需要澄清,請讓我知道。總而言之,我試圖選擇一個區域(休斯敦),並且只在選擇該區域時才顯示休斯頓地區的設施。
在此先感謝您提供的任何幫助或提示。
我認爲這[Railscast:動態選擇菜單](http://railscasts.com/episodes/88-dynamic-select-menus-revised)可能是朝着正確的方向邁出的一步,但我不確定我將使用或不使用grouped_collection_select。 – nulltek 2014-08-27 18:24:41
我已經設置了區域和設施之間的關聯,並且該部分正常工作,現在只需要弄清楚一些jQuery/CoffeeScript就可以做到這一點,並在我的表單中使用什麼方法進行選擇。看起來grouped_collection_select沒有做我所需要的。 – nulltek 2014-08-27 21:52:29