Как в Rails изменить параметры метода контроллера с помощью тега формы поиска? - PullRequest
0 голосов
/ 23 января 2019

Я создаю приложение Rails, которое взаимодействует с внешним поисковым API.У меня есть метод класса с функцией поиска, доступ к которому осуществляется с помощью моего метода индекса в контроллере проекта.Как я могу сделать так, чтобы мой поиск формы изменял параметры моего метода контроллера и, таким образом, выполнял поиск?Мой код ниже.Был бы признателен за помощь:)

Метод класса:

class Api
  include HTTParty
  base_uri "http://search.exampleapi.com"

  attr_accessor :name

  # Find a particular design, based on its name
  def find(name)
    self.class.get("/designs", query: { q: name }).parsed_response
  end
end 

Контроллер:

class DesignsController < ApplicationController
    def index
        @search = Api.new.find(params[:q])['results']
    end
end

Routes.rb

Rails.application.routes.draw do
    root 'designs#index'
    resources :designs
end

Просмотр:

<h1>Search</h1>

<%= form_tag(controller: "designs", action: "search", method: "get") do %>
  <%= label_tag(:q, "Search for:") %>
  <%= text_field_tag(:q) %>
  <%= submit_tag("Search") %>
<% end %>

<h2>Search results:</h2>

<% @search.each do |design| %>  
<h3><%= design['name'] %></h3>
<h5><%= design['thumbnail_url'] %></h5>
<% end %>

1 Ответ

0 голосов
/ 23 января 2019

поскольку вы используете индексную страницу, которую вы можете сделать, designs_path автоматически направит вас к контроллеру индекса

<%= form_tag(designs_path, method: :get) do %>
  <%= label_tag(:q, "Search for:") %>
  <%= text_field_tag(:q) %>
  <%= submit_tag("Search") %>
<% end %>
...