Ich baue eine Bibliothek in Sinatra, mit Postresql als Datenbank und einem 'googlebooks' Juwel, um die Informationen zu finden, die ich will.undefined Methode mit googlebooks
Dies ist mein Code in main.rb
get '/list' do
@books = GoogleBooks.search(params[:title])
erb :list
end
get '/info/:isbn' do
#this is to get the info from my database if there is any
if book = Book.find_by(isbn: params[:isbn])
@book_title = book.title
@book_authors = book.author
@book_year = book.year
@book_page_count = book.page_count
@book_id = book.id
@book_isbn = book.isbn
else
#use the gem to look for the data
text = GoogleBooks.search(params[:isbn])
@book_title = text.title
@book_author = text.authors
@book_year = text.published_date
@book_cover = text.image_link(:zoom => 2)
@book_page_count = text.page_count
@book_notes = text.description
#and then store it into the database
book = Book.new
book.title = @book_title
book.authors = @book_authors
book.publish_date = @book_year
book.image_link = @book_cover
book.page_count = @book_page_count
book.description = @book_notes
book.isbn = params[:isbn]
book.save
@book_id = book.id
end
erb :info
end
Dies ist meine erb-Datei: Liste
<div class='list_by_title'>
<% @books.each do |text| %>
<ul>
<li class='list_by_title'>
<a href="/info/<%= text.isbn_10 %>"><%= text.title %> (Authour: <%= text.authors %>)</a>
</li>
</ul>
<%end%>
</div>
Die Liste Teil funktioniert .. Ich bin in der Lage, eine Seite mit einer Liste haben der Titel ... ist das Problem, wenn ich versuche, die Daten aus dem params isbn zu nennen, ich diesen Fehler immer haben:
NoMethodError at /info/0596554877
undefined method `title' for #<GoogleBooks::Response:0x007ff07a430e28>
Jede Idee für eine mögliche Lösung?
können Sie melden den JSON, den Sie von der API erhalten, und prüfen Sie, was falsch ist. –