首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 4,在内存中加载api响应进行下拉选择?

Rails 4,在内存中加载api响应进行下拉选择?
EN

Stack Overflow用户
提问于 2016-07-22 19:08:22
回答 2查看 388关注 0票数 0

基本上,我想从一个API中提取一个团队对象的列表-- team_id和team_name是我感兴趣的--因为它将允许我稍后进行pertitent调用,并使用选项填充下拉列表。我希望在我的应用程序中创建用于创建拼车对象的表单中的下拉列表中有“团队名称”列表。

到目前为止我有这样的想法:

调用carpool_controller.rb (carpools#ts_add_teams_to_memory)控制器操作:

代码语言:javascript
运行
复制
  def ts_add_teams_to_memory
      ts_teams = current_user.ts_add_teams_to_memory
  end

其中,ts_teams是一个包含键:name和:id的散列数组。ts_add_teams_to_memory

  • 从api抓取团队
  • 提取属性'name‘和'id’
  • 为每个对象创建一个散列。
  • 将该散列传递到数组中。
  • ts_teams表示该哈希数组。

carpools/new.html.erb

下面是我希望通过ajax将散列数组传递给的表单。

代码语言:javascript
运行
复制
  <%= 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请求发送到正确路径的链接:

代码语言:javascript
运行
复制
    <%= 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返回的团队选项列表,理想情况下不重新加载页面.

任何帮助都很感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-22 19:17:19

为此,您需要编写一些javascript代码。

要在coffeescript中自己做这件事,应该是这样的:

代码语言:javascript
运行
复制
$('#ajax-id').on 'ajax:success', (data) ->
  data.teams.forEach (team) ->
    $('#select-id').append("<option value=#{team.id}>#{name}</option>")

#xxx-ids更改为ajax表单,并分别选择元素ID。

我建议您尝试以下javascript库之一,以使您的生活更加轻松:

它们都有使用AJAX的远程数据支持。

票数 1
EN

Stack Overflow用户

发布于 2016-07-22 19:16:01

控制器(确保在操作中调用ts_add_teams_to_memory ):

代码语言:javascript
运行
复制
def ts_add_teams_to_memory
  @ts_teams = current_user.ts_add_teams_to_memory
end

查看:

代码语言:javascript
运行
复制
<%= f.collection_select :team_id, @ts_teams, :id, :name %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38533732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档