Rails 6.0.3.4
Cette fois, j'aimerais enregistrer la procédure de mise en œuvre d'une application de recherche ultra-simple à l'aide de l'API de recherche de produits Rakuten. C'est peut-être le moyen le plus simple de le faire, en plus d'être facile à comprendre ...? Je pense que c'est égoïste. Cette fois, la gestion des erreurs est omise.
https://webservice.rakuten.co.jp/ Enregistrons-nous à partir de ce qui précède et obtenons l'ID de l'application.
rails g controller items search
Si vous entrez cette commande dans le terminal, le contrôleur et la vue (search.html.erb), Il décrit également le routage (modifiez le routage à votre guise).
<h2 class="product-subtitle-explain">Cherchons des produits!</h2>
<%= form_with url:product_search_path, method: :get, local: true do |f| %>
<%= f.text_field :keyword, placeholder: "Veuillez saisir un mot-clé de recherche", autocomplete: 'off' %>
<%= f.submit "Chercher" , :name => nil%>
<% end %>
<h2>Résultats de recherche</h2>
<%= render partial: 'item_list' %>
Est-ce quelque chose comme ça? Puisqu'il n'y a rien à sauvegarder en particulier, écrivez l'url dans form_avec quelle action ignorer.
:Rechercher un mot comme mot-clé:Stocker dans le mot-clé. ← Important!
#### **` "Veuillez saisir un mot-clé de recherche"A titre d'exemple, je mets les caractères sur le formulaire. Aussi,`**
```placeholder
#### **` 'off'J'ai donc désactivé la complétion automatique du formulaire.`**
```autocomplete
Enfin, j'aimerais que vous y prêtiez attention.
#### **` 'product_list' %>`**
```<%= render partial
Par conséquent, la partie dans laquelle les résultats de la recherche sont affichés est ignorée vers un autre fichier de vue.
Alors ici, dans app / views / item,
#### **`_item.list.Créez un fichier erb. La recherche que j'ai faite plus tôt.html.C'est le même endroit que erb.`**
Vient ensuite la destination de rendu _item.list.erb, J'écrirai une description pour afficher le résultat.
<% @items.first(10).each do |item| %>
<img src="<%= item['smallImageUrls'][0] %>">
<a href="<%= item['itemUrl']%>" target="_blank"><%= item['itemName']%></a>
<%= item['itemPrice'] %>Cercle
<% end %>
En regardant d'en haut, d'abord
<% @items.first(10).each do |item| %>★<%end%>
En conséquence, j'ai décrit ce que je voulais copier dans le produit.
#### **`.first(10)Ce faisant, les 10 premiers éléments capturés lors de la recherche sont affichés.`**
@items
Sera défini dans le contrôleur de recherche après cela! (J'obtiens une erreur même si je regarde la vue maintenant)
item['smallImageUrls'][0]
J'obtiens la première image d'un article de petite taille.
item['itemurl']
J'obtiens une URL pour accéder aux détails de l'article.
target="_blank"
Lorsque je clique sur un élément, je le configure pour ouvrir un autre onglet et accéder à la page de détails du produit de Rakuten
item['itemname']
J'obtiens le nom de l'article.
['itemprice']
J'obtiens le prix de l'article.
Vous pouvez également obtenir diverses informations sur l'article. ↓
https://webservice.rakuten.co.jp/api/ichibaitemsearch/
https://webservice.rakuten.co.jp/sdk/ruby.html Nous allons le mettre en œuvre sur la base.
gem 'rakuten_web_service'
Vers le fichier gem et
bundle install` ''
Veuillez redémarrer le terminal.
De là, nous entrerons la description du contrôleur d'articles.
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]Est la recherche.html.Les mots-clés sont stockés sous la forme d'entrée erb.
Vérifiez [: mot-clé] dans les paramètres et stockez-le dans @items.
#### **`RakutenWebService::Ichiba::Item.la recherche est un cliché. Pour plus d'informations`**
https://webservice.rakuten.co.jp/sdk/ruby.html S'il vous plaît, jetez un oeil.
Créez rukuten.rb sous config / initialize. Je décrirai l'identifiant de l'application La méthode de description diffère selon le moment, alors assurez-vous de vérifier également la formule.
RakutenWebService.configure do |c|
c.application_id = '*******************'
c.affiliate_id = '*******************'← Ceci est facultatif
end
Lors de l'utilisation de variables d'environnement:
RakutenWebService.configure do |c|
c.application_id = ENV['RWS_APPLICATION_ID']
c.affiliate_id = ENV["RWS_AFFILIATION_ID"]
end
Une fois que cela fonctionne, définissez les variables d'environnement même dans l'environnement de production. Après avoir préparé avec HTML / CSS, je pense que cela ressemblera probablement à ceci.
Recommended Posts