J'essaie de créer une application Web simple de deux pages qui permet aux utilisateurs de rechercher des mots, puis d'afficher leurs définitions sur une nouvelle page.
Le problème est que lors de la recherche d’un mot, je n’obtiens aucune réponse de mon fichier de modèle.
Je pense que le problème est d'essayer de convertir la requête JSON en un hachage, puis d'accéder / d'afficher le hachage dans la vue (vous ne savez pas comment procéder).
app / views / index.html.erb
<%= form_tag("/search", method: "get") do %>
<%= text_field_tag :search, params[:search], :class => "search-form" %>
<%= submit_tag nil, :class => "search-glass", :src => "search-icon.png", :type => "image" %>
<% end %>
app / controllers / words_controller.rb
def search
@word = Word.search(params[:search])
render layout: "application", template: "words/index"
end
app / models / word.rb
class Word
require "rubygems"
require "json"
attr_accessor :search
def self.search(search)
# Get back JSON response
response = Wordnik.word.get_definitions(search)
# Parse JSON to an array of hashes?
hash_result = JSON.parse(response)
end
end
Lorsque je cherche un seul mot, je reçois l’erreur suivante (capture d'écran):
Toute aide est grandement appréciée.
Réponses:
1 pour la réponse № 1Quand vous appelez Wordnik.word.get_definitions(search)
, un tableau de hachages est renvoyé, pas une chaîne JSON. Supprimer la ligne:
hash_result = JSON.parse(response)
Aussi, avoir votre clé API publiquement disponible sur Github n'est probablement pas une bonne idée.