基本的に私はAPIからチームオブジェクトのリストを取得したいと思っています - チームIDとチーム名は私が興味を持っているものです - 後でAPI呼び出しを行い、オプション付きのドロップダウンリストを作ることができます。私は、アプリケーション内にカープールオブジェクトを作成するために使用されるフォームの中のドロップダウンリストに「チーム名」のリストを用意したいと考えています。Rails 4、メモリ内にAPIレスポンスを読み込んでドロップダウンを選択していますか?
carpool_controller.rb(カープール#1 ts_add_teams_to_memory)コントローラのアクションが呼び出される:、ts_teams
キーを含むハッシュの配列であり、[名前]
は、これまで私はこれを持っていますと[:id]。 API
- グラブチームは、属性「名称」を引き出し、「ID」
- 各オブジェクト
- のハッシュを配列にそのハッシュを通過作成します。
- ts_teamsは、そのハッシュの配列を表します。
相乗り/ new.html.erb
ここで私は、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タグにハッシュの配列をプッシュするにはどうすればよい:ここで
<%= 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リクエストを送信するために使用していますリンクですか?または、これを行うためのより良い方法がありますか?私は、ページ上のAPIから返されたチームオプションの一覧を表示する必要があります。ページをリロードしなくても理想的です...
javascriptビューで 'collection_select'をレンダリングする必要があります。あなたの 'link_to'が呼んでいるアクションは' respond_to do | format | format.js end'を実行すると、ビューは 'js.erb'で終了し、jqueryを使用して、そこに必要なデータとともに' collection_select'を挿入することができます。明示的に 'ajax(...)'メソッドを呼び出すjavascriptを書く必要はありません。それはレールの邪魔にならないjavascriptの全体のポイントです。 http://guides.rubyonrails.org/working_with_javascript_in_rails.html –