ruby-on-rails - 如何将表单的参数提交到 Controller 中的(API 调用)方法中?

标签 ruby-on-rails ruby forms api

我正在进行 API 调用,但没有将所有数据保存到我的数据库中,因此我认为我不需要为此目的制作模型。但是,我不知道如何为这个 API 调用生成一个表单,它在我的 Controller 中。

这是我认为的形式:

<%= simple_form_for ITHINKINEEDSOMETHINGHERE url: searchApis_path, :method => 'get' do |f| %>
  <%= f.input :keyword, :placeholder => 'keyword', input_html: { name: :keyword } %>
  <%= f.input :city, :placeholder => 'city', input_html: { name: :keyword } %>
  <%= f.input :start_date, :placeholder => 'YYYY-MM-DD', input_html: { name: :start_date } %>
  <%= f.input :end_date, :placeholder => 'YYYY-MM-DD', input_html: { name: :end_date } %>
  <%= f.button :submit, "Submit" %>
<% end %>

我对应的 Controller :

class HomeController < ApplicationController
  def index
  end

  def searchApis
    start_date = params[:start_date]
    end_date = params[:start_date]
    keyword = params[:keyword]
    city = params[:city]

    eventbrite_request = Typhoeus::Request.new('https://www.eventbriteapi.com/v3/events/search?q='+keyword+'&sort_by=best&venue.city='+city+'&start_date.range_start='+start_date+'T00:00:00Z&start_date.range_end='+end_date+'T00:00:00Z',
                                  method: :get,
                                  headers: { 'Authorization' => ENV['EVENTBRITE']})
    @response = eventbrite_request.run

    # yelp_request = Typhoeus::Request.new('',
    #                                   )
    # set @result to be the data that I want.
  end


end

我收到“未定义方法‘model_name’”错误。

我向其发出 GET 请求的路由是 /searchApis,所以我猜测表单中的 url 应该是 searchApis_path

到目前为止,我主要学习了如何制作一个表单来生成模型的新实例,但在这种情况下,表单本质上是启动 API 调用,稍后我将在我的表单下显示其响应。对于它的值(value),我希望以后能够将响应 JSON 中的选择数据保存到“书签”模型中。

谢谢。

最佳答案

您编写 ITHINKINEEDSOMETHINGHERE 的地方就是记录(通常是 ActiveRecord 模型)通常所在的位置。它用于构造各种字段名称。

因为看起来你在做一个搜索 Controller ,你可以把 :search 放在那里,然后会让你所有的表单字段命名为 search[keyword]

然后在您的后端,您只需访问适当的 params 对象,该对象通常嵌套在您为记录命名的任何内容下,因此在这种情况下,params[:search][:keyword] .

http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for

我知道您使用的是 simple_form,但它从 form_for 继承了很多内容,因此该页面仍然是一个很好的引用

关于ruby-on-rails - 如何将表单的参数提交到 Controller 中的(API 调用)方法中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34831829/

相关文章:

ruby - Nokogiri 中的安全 $variable 绑定(bind)

ruby - 调试级别 Rails - 级别 ":debug"显示所有日志。我只想要错误。是否可以?

ruby-on-rails - Ruby net/ssh 与特定主机挂起

使用额外 id 提交的 jQuery 表单序列化

ruby-on-rails - 在 ruby​​ on rails 中包含 httparty 的问题

ruby-on-rails - 如何为状态机或有限自动机实现 RESTful 资源

ruby-on-rails - 创建名称助手,将名字和姓氏分开

forms - 与标签的右侧文本对齐(行内 block )

javascript - Angular:在 NgForm 的自定义输入组件中调用 markAsDirty()

ruby-on-rails - Ruby require::File 语法