/ / Rails 3 - Versuch, JSON zu analysieren und Hash zurückzugeben - Ruby-on-Rails, Ruby-on-Rails-3

Rails 3 - Versuchen, JSON zu parsen und hash zurückzugeben - ruby-on-rails, ruby-on-rails-3

Ich versuche, eine einfache, zweiseitige Web-App zu erstellen, mit der Benutzer nach Wörtern suchen und ihre Definitionen auf einer neuen Seite anzeigen können.

Das Problem ist, dass ich bei der Suche nach einem Wort keine Antwort von meiner Modelldatei bekomme.

Ich denke, das Problem besteht darin, die JSON-Anforderung in einen Hash zu konvertieren und dann auf den Hash in der Ansicht zuzugreifen / ihn anzuzeigen (ich bin nicht sicher, wie ich das anstellen soll).


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 / controller / 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

Bei der Suche nach einem einzelnen Wort erhalte ich den folgenden Fehler (Bildschirmfoto):

Jede Hilfe wird sehr geschätzt.

Antworten:

1 für die Antwort № 1

Wenn du anrufst Wordnik.word.get_definitions(search)Es wird ein Array von Hashes zurückgegeben, keine JSON-Zeichenfolge. Entfernen Sie die Linie:

hash_result = JSON.parse(response)

Es ist wahrscheinlich keine gute Idee, Ihren API-Schlüssel auf Github öffentlich verfügbar zu haben.