【问题标题】:Rails form to edit API call based on dateRails 表单根据日期编辑 API 调用
【发布时间】:2017-03-15 22:44:42
【问题描述】:

我正在尝试构建一个表单,允许用户编辑搜索日期的 API 调用。这个想法是允许人们通过调用 NASA 的 API 之一在给定的时间窗口内搜索近地小行星。不太确定从哪里开始解决这个问题。

这是我模型中的调用。可以看到 start_date 和 end_date,`我要根据用户信息来编辑

class Astroid < ApplicationRecord

def self.get_api_info
    astroid = "https://api.nasa.gov/neo/rest/v1/feed?start_date=2017-03-15&end_date=2017-03-15&api_key=*****"                                                                                               
    request_to_astroid = Net::HTTP.get(URI(astroid))
    JSON.parse request_to_astroid

end

结束

这是我非常简单的控制器

def index
@astroid_info = AstroidApi.get_api_info

结束

以及收集用户日期选择后我想要显示的视图

 <%= @astroid_info['near_earth_objects']["2017-03-15"][1]["close_approach_data"][0]["close_approach_date"]%> an astroid named <%= @astroid_info ['near_earth_objects']["2017-03-15"][1]["name"] %> missed us by: <%= @astroid_info ['near_earth_objects']["2017-03-15"][0]["close_approach_data"][0]["miss_distance"]["miles"] %> 

这是查看数据如何给出的链接:https://api.nasa.gov/neo/rest/v1/feed?start_date=2017-03-15&end_date=2017-03-15&api_key=DEMO_KEY

【问题讨论】:

  • 我最初的想法是用从用户输入填充的变量替换 start_date 和 end_date。我不确定这是否是解决此问题的最佳方法,因为我不确定在获得此信息后如何成功编辑模型

标签: ruby-on-rails json api ruby-on-rails-5 form-for


【解决方案1】:

我会马上说我对 Ruby 或 Rails 不是很熟悉。但是,我也许可以引导您朝某个方向前进或尝试确认您的想法。当您进行 API 调用时,您有机会决定通过调用发送哪些数据。通过构建一个用户可以选择日期的表单,然后您可以从该表单中提取输入值以与您的呼叫一起发送。

您可以像这样使用日期选择器输入:

<form action="/action_page.php">
  <label for="date-selection">Date:</label>
  <input type="date" name="date-selection">
  <button type="submit">Submit</button>
</form>

或者通过添加另一个日期输入来使用其中两个来创建要搜索的日期范围。 然后从中获取输入以与您的 API 调用一起发送。抱歉,我无法帮助您从输入中提取数据以进行呼叫,我用 JS 编写(暂时)。

【讨论】:

    【解决方案2】:

    控制器:

    @start_date = params[:start_date]
    @end_date = params[:end_date]
    @astroid_info = Astroid.get_api_info["element_count"]
    @astroid_date = Astroid.get_api_info["near_earth_objects"]
    

    查看:

        <%= form_tag searchApi_path, method: "get", html: { class: "form" } do %>
    <div class="form-group col-sm-6 col-md-offset-3">
    <%= text_field_tag(:start_date, "", placeholder: "Enter date", class: "form-control") %>
    <%= text_field_tag(:end_date, "", placeholder: "Enter date", class: "form-control") %>
    </div>
    
    <div class= 'container'>
    <%= submit_tag "Search", class: "btn btn-success"  %>
    <% end %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 2014-07-12
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      相关资源
      最近更新 更多