Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何将表单参数提交到控制器中的(API调用)方法中?_Ruby On Rails_Ruby_Forms_Api - Fatal编程技术网

Ruby on rails 如何将表单参数提交到控制器中的(API调用)方法中?

Ruby on rails 如何将表单参数提交到控制器中的(API调用)方法中?,ruby-on-rails,ruby,forms,api,Ruby On Rails,Ruby,Forms,Api,我正在进行API调用,但没有将所有数据保存到数据库中,因此我假设不需要为此目的创建模型。但是,我不知道如何为这个API调用生成表单,它在我的控制器中 以下是我认为的表格: <%= simple_form_for ITHINKINEEDSOMETHINGHERE url: searchApis_path, :method => 'get' do |f| %> <%= f.input :keyword, :placeholder => 'keyword', inpu

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

以下是我认为的表格:

<%= 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 %>
我对应的控制器:

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请求的路径是/searchAPI,因此我猜表单中的url应该是searchAPI\u path

到目前为止,我主要学习了如何创建表单来生成模型的新实例,但在本例中,表单本质上是启动API调用,稍后我将在表单下显示其响应。无论如何,我希望以后能够将响应JSON中的select数据保存到“bookmarks”模型中

谢谢。

您在此处编写了我的InkineedSomething这里是记录(通常是ActiveRecord模型)通常所在的位置。它用于构造各种字段名

因为它看起来像是在做一个搜索控制器,所以您可以将:search放在那里,这样所有表单字段都可以命名为search[keyword]

在后端,您只需访问适当的params对象,它通常嵌套在您命名的记录下,因此在本例中,params[:search][:keyword]


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

我实际上没有搜索控制器。这一切都发生在我的家庭控制器。那么,我需要它和搜索模型吗?我感到困惑,因为我认为制作模型/控制器意味着我正在将其保存到数据库中,而我并不打算这样做。我将记录更改为:search;但是,我从服务器上得到了400响应代码。控制器中的请求是否存在语法问题?您可能需要更改url:参数的提供方式。如果您没有指向SearchAPI的命名路由\u路径,则可以通过键入rake routes查看命名路由。您需要使用更明确的url表示形式,例如控制器:“Home”,操作:“SearchAPI”Try Object.new和输入