/ / Rails 3 - Analyse JSON et retourne un hachage - ruby-on-rails, ruby-on-rails-3

Rails 3 - Analyse JSON et renvoi d'un hachage - ruby-on-rails, ruby-on-rails-3

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 № 1

Quand 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.