基本上我想從API中提取一個團隊對象列表 - team_id和team_name是我感興趣的 - 因爲它可以讓我在稍後進行精確的API調用並使用選項填充下拉列表。我希望在下拉列表中提供「團隊名稱」列表,這些列表位於用於在應用程序中創建拼車對象的表單內。Rails 4,在內存中加載api響應下拉選擇?
到目前爲止,我有這樣的:被稱爲
carpool_controller.rb(共乘車#ts_add_teams_to_memory)控制器動作:
在哪裏,ts_teams是含有鍵散列數組[:名稱]和[:id]。 ts_add_teams_to_memory
- 從API
- 翻出屬性「名稱」和「ID」
- 創建哈希抓住隊伍爲每個對象
- 通過該散列到一個數組。
- ts_teams表示散列數組。
合乘/ new.html.erb
這裏是我要通過AJAX到散列的數組傳遞到表單中。
<%= form_for @carpool do |f| %>
<h3>Select Team</h3>
<div class="form-group">
<%= f.collection_select :team_id, #INSERT ARRAY OF HASHES VIA AJAX?, :id, :name, include_blank: true %>
</div>
<%= f.submit 'Create Carpool', :class => 'button left' %>
<% end %>
這裏是我用來發送Ajax請求的正確路徑的鏈接:
<%= link_to "Get Teams", ts_add_teams_to_memory_path(current_user.id),
remote: true,
method: :get,
class: "btn btn-success left",
data: {toggle: "modal", target: "#ts_loading"} %>
如何散列的陣列推入共乘的collection_select標籤創建表單?或者,有沒有更好的方法來做到這一點?我需要查看頁面上API返回的團隊選項列表,理想情況下無需重新加載頁面...
任何幫助表示讚賞!
您應該呈現在JavaScript鑑於'collection_select'。你的'link_to'正在調用的動作應該是'respond_to do | format |' format.js end'然後你的觀點將與'js.erb'結束,您可以使用jQuery插入你在那裏要的數據'collection_select'。你不應該寫任何明確調用'ajax(...)'方法的javascript。這就是整個rails不顯眼的javascript問題。這說明相當不錯的位置:http://guides.rubyonrails.org/working_with_javascript_in_rails.html –