Forum: Italian Ruby user group Errore: ActionController::RoutingError in Books#show

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D38348a0d668c6be58b50b096fb05480?d=identicon&s=25 Angel Rivero (padellini)
on 2009-03-21 14:26
Ciao a tutti.

Sono alle prime armi con Ruby e devo dire che è molto interessante: sti
studiando su un testo di Filippo Costalli completo e scorrevole.

Sono riuscito a creare il primo script che interagisce con un db mysql.

Però ho un problema nell'inserimento dei dati nel db mysql: i dati
vengono registrati in mysql però appare quest'errore che non so cosa
sia:

ActionController::RoutingError in Books#show
Showing app/views/books/show.html.erb where line #42 raised:

edit_book_url failed to generate from {:action=>"edit",
:controller=>"books", :id=>#<Book ID: 3, TITOLO: "c", ANNO: 2009,
AUTORE: "c", EDITORE: "c", PAGINE: 10, PREZZO:
#<BigDecimal:381e0cc,'0.1036E2',8(8)>, ISBN: 12>}, expected:
{:controller=>"books", :action=>"edit"}, diff: {:id=>#<Book ID: 3,
TITOLO: "c", ANNO: 2009, AUTORE: "c", EDITORE: "c", PAGINE: 10, PREZZO:
#<BigDecimal:381d578,'0.1036E2',8(8)>, ISBN: 12>}

Extracted source (around line #42):

39: </p>
40:
41:
42: <%= link_to 'Edit', edit_book_path(@book) %> |
43: <%= link_to 'Back', books_path %>



RAILS_ROOT: C:/biblioteca

Application Trace | Framework Trace | Full Trace
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-
....
C:/Ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.2/lib/action_controller/vendor/rack-1.0/rack/handler/webrick.rb:13:in
`run'
C:/Ruby/lib/ruby/gems/1.8/gems/rails-2.3.2/lib/commands/server.rb:111
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
C:/Ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
script/server:3
Request
Parameters:

{"id"=>"3"}

Show session dump

---

Response
Headers:

{"Content-Type"=>"text/html",
 "Cache-Control"=>"no-cache"}


Potete aiutarmi?
Grazie
72e0b3f5418bfcf47488918109068c4c?d=identicon&s=25 Andrea Cuius (q_rails)
on 2009-03-21 14:33
(Received via mailing list)
controlla le tue routes, da console se sei nella root della tua
applicazione puoi lanciare
rake routes

la prima cosa che mi viene in mente è che non hai definito le tue
routes restful, in routes.rb dovresti avere questa linea

map.resources :books

prova a lanciare rake routes e vedi se ci sono.

Q
D38348a0d668c6be58b50b096fb05480?d=identicon&s=25 Angel Rivero (padellini)
on 2009-03-21 14:37
Attachment: Immagine.GIF (20 KB)
Andrea Cuius wrote:
> controlla le tue routes, da console se sei nella root della tua
> applicazione puoi lanciare
> rake routes
>
> la prima cosa che mi viene in mente � che non hai definito le tue
> routes restful, in routes.rb dovresti avere questa linea
>
> map.resources :books
>
> prova a lanciare rake routes e vedi se ci sono.
>
> Q

Grazie, ti allego la schermata restituita dall'applicazione.
72e0b3f5418bfcf47488918109068c4c?d=identicon&s=25 Andrea Cuius (q_rails)
on 2009-03-21 14:49
(Received via mailing list)
le routes sembrano a posto anche se lo screenshot è medievale :]
pastie è una buona alternativa http://pastie.org/

forse ci sono, se non ho capito male tu fai il render di quella pagina
dopo la creazione giusto?
controlla che @book non sia vuoto, nel metodo show dovresti aver
definito in questo modo

@book = Book.find(params[:id])

nella create controlla di fare un redirect e non un render, il render
elabora semplicemente la vista, il redirect richiama prima il metodo
relativo, se tu per la show fai solo il render @book non viene
inizializzata.

Q
D38348a0d668c6be58b50b096fb05480?d=identicon&s=25 Angel Rivero (padellini)
on 2009-03-21 15:11
Andrea Cuius wrote:
> le routes sembrano a posto anche se lo screenshot è medievale :]
> pastie è una buona alternativa http://pastie.org/
>
> forse ci sono, se non ho capito male tu fai il render di quella pagina
> dopo la creazione giusto?
> controlla che @book non sia vuoto, nel metodo show dovresti aver
> definito in questo modo
>
> @book = Book.find(params[:id])
>
> nella create controlla di fare un redirect e non un render, il render
> elabora semplicemente la vista, il redirect richiama prima il metodo
> relativo, se tu per la show fai solo il render @book non viene
> inizializzata.
>
> Q

Scusa sono un principante... cosa devo fare? dove trovo il metodo show?
Grazie
72e0b3f5418bfcf47488918109068c4c?d=identicon&s=25 Andrea Cuius (q_rails)
on 2009-03-21 15:18
(Received via mailing list)
L' errore che ritorna ti dice tutto, controller books metodo show
> Showing app/views/books/show.html.erb where line #42 raised:
D38348a0d668c6be58b50b096fb05480?d=identicon&s=25 Angel Rivero (padellini)
on 2009-03-21 15:32
Andrea Cuius wrote:
> L' errore che ritorna ti dice tutto, controller books metodo show
>> Showing app/views/books/show.html.erb where line #42 raised:

Grazie per la pazienza.

Questa è la pagina show.html.erb:

<p>
  <b>Id:</b>
  <%=h @book.ID %>
</p>

<p>
  <b>Titolo:</b>
  <%=h @book.TITOLO %>
</p>

<p>
  <b>Anno:</b>
  <%=h @book.ANNO %>
</p>

<p>
  <b>Autore:</b>
  <%=h @book.AUTORE %>
</p>

<p>
  <b>Editore:</b>
  <%=h @book.EDITORE %>
</p>

<p>
  <b>Pagine:</b>
  <%=h @book.PAGINE %>
</p>

<p>
  <b>Prezzo:</b>
  <%=h @book.PREZZO %>
</p>

<p>
  <b>Isbn:</b>
  <%=h @book.ISBN %>
</p>


<%= link_to 'Edit', edit_book_path(@book) %> |
<%= link_to 'Back', books_path %>
This topic is locked and can not be replied to.