[RAILS]

Einführung

Rails 6.0.3.4

Dieses Mal möchte ich das Verfahren zum Implementieren einer supereinfachen Suchanwendung mithilfe der Rakuten-Produktsuch-API aufzeichnen. Vielleicht ist es der einfachste Weg, es zu tun, abgesehen davon, dass es leicht zu verstehen ist ...? Ich finde es egoistisch. Dieses Mal entfällt die Fehlerbehandlung.

https://webservice.rakuten.co.jp/ Registrieren wir uns von oben und erhalten die Anwendungs-ID.

Artikel-Controller-Erstellung

rails g controller items search

Wenn Sie diesen Befehl in das Terminal, den Controller und die Ansicht (search.html.erb) eingeben, Außerdem wird das Routing beschrieben (ändern Sie das Routing nach Ihren Wünschen).

Beschreiben Sie die Ansicht

<h2 class="product-subtitle-explain">Lassen Sie uns nach Produkten suchen!</h2>

<%= form_with url:product_search_path, method: :get, local: true do |f| %>
<%= f.text_field :keyword, placeholder: "Bitte ein Suchwort eingeben", autocomplete: 'off' %>
<%= f.submit "Suche" , :name => nil%>
<% end %>

<h2>Suchergebnisse</h2>
<%= render partial: 'item_list' %>

Ist es so etwas? Da es insbesondere nichts zu speichern gibt, schreiben Sie die URL in form_with, welche Aktion übersprungen werden soll.

:Suchwort als Schlüsselwort:Im Schlüsselwort speichern. ← Wichtig!



#### **` "Bitte ein Suchwort eingeben"Als Beispiel habe ich die Zeichen in das Formular eingefügt. Ebenfalls,`**
```placeholder


#### **` 'off'Daher habe ich das automatische Ausfüllen des Formulars deaktiviert.`**
```autocomplete


 Zu guter Letzt möchte ich Sie bitten, darauf zu achten.

#### **` 'product_list' %>`**
```<%= render partial

 Infolgedessen wird der Teil, in dem die Suchergebnisse angezeigt werden, in eine andere Ansichtsdatei übersprungen.
 Also hier in App / Ansichten / Artikel,

#### **`_item.list.Erstellen Sie einen erb. Die Suche habe ich früher gemacht.html.Es ist der gleiche Ort wie erb.`**

Als nächstes folgt das Renderziel _item.list.erb, Ich werde eine Beschreibung schreiben, um das Ergebnis anzuzeigen.

<% @items.first(10).each do |item| %>

  <img src="<%= item['smallImageUrls'][0] %>">

  <a href="<%= item['itemUrl']%>" target="_blank"><%= item['itemName']%></a>

  <%= item['itemPrice'] %>Kreis
 
<% end %>

Zuerst von oben schauen

<% @items.first(10).each do |item| %>★<%end%>


 Als Ergebnis habe ich beschrieben, was ich in das Produkt kopieren wollte.

#### **`.first(10)Auf diese Weise werden die ersten 10 Elemente angezeigt, die bei der Suche erfasst wurden.`**

@itemsWird danach im Suchcontroller definiert! (Ich erhalte eine Fehlermeldung, auch wenn ich mir jetzt die Ansicht ansehe.)

item['smallImageUrls'][0] Ich erhalte das erste Bild eines Artikels in kleiner Größe. item['itemurl'] Ich erhalte eine URL, um zu den Artikeldetails zu gelangen. target="_blank" Wenn ich auf einen Artikel klicke, stelle ich ihn so ein, dass ein weiterer Tab geöffnet und die Produktdetailseite von Rakuten aufgerufen wird. item['itemname'] Ich bekomme den Namen des Artikels. ['itemprice'] Ich bekomme den Preis des Artikels. Sie können auch verschiedene Informationen über den Artikel erhalten. ↓ https://webservice.rakuten.co.jp/api/ichibaitemsearch/

Controller-Beschreibung

https://webservice.rakuten.co.jp/sdk/ruby.html Wir werden es basierend auf implementieren.

gem 'rakuten_web_service'

Zur Gem-Datei und `Bundle installieren ` Bitte starten Sie das Terminal neu. Von hier aus geben wir die Beschreibung des Artikel-Controllers ein.

class ProductController < ApplicationController
  require 'rakuten_web_service'

  def search
    if params[:keyword].present?
      @items = RakutenWebService::Ichiba::Item.search(keyword: params[:keyword])
    else
      render :search
    end
  end
end

params[:keyword]Ist Suche.html.Schlüsselwörter werden in der Eingabeform von erb gespeichert.


 Aktivieren Sie [: keyword] in params und speichern Sie es in @items.

#### **`RakutenWebService::Ichiba::Item.Suche ist ein Klischee. Für mehr Informationen`**

https://webservice.rakuten.co.jp/sdk/ruby.html Bitte schau es dir an.

Einstellung der Anwendungs-ID

Erstellen Sie rukuten.rb unter config / initialize. Ich werde die Anwendungs-ID darin beschreiben Die Beschreibungsmethode unterscheidet sich je nach Zeitpunkt. Überprüfen Sie daher auch die Formel.

RakutenWebService.configure do |c|
  c.application_id = '*******************'
  c.affiliate_id = '*******************'← Dies ist optional
end

Bei Verwendung von Umgebungsvariablen:

RakutenWebService.configure do |c|
  c.application_id = ENV['RWS_APPLICATION_ID']
  c.affiliate_id = ENV["RWS_AFFILIATION_ID"]
end

Nachdem dies funktioniert hat, legen Sie die Umgebungsvariablen auch in der Produktionsumgebung fest. Nach der Vorbereitung mit HTML / CSS denke ich, dass es wahrscheinlich so aussehen wird. products.gif

Recommended Posts