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.
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).
<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.`**
@items
Wird 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/
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.
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.
Recommended Posts