Buonasera a tutti, sono un nuovo utente che si sta affacciando al mondo
di Ruby e ho qualche problema che spero mi aiutiate a risolvere…
Ho diverse tabelle che servono a reppresentare una libreria on-line con
libri autori, utenti e whish list.
Ho due relazioni molti a molti Libro<>Autore e Libro<>Whishlist<>Utente.
Per la prima relazione non ho problemi a gestirla, mentre la secondo mi
sta dando delle noie…
Le tabelle del db interessate sono:
CREATE TABLE authors
(
id
int(11) NOT NULL auto_increment,
name
varchar(255) default NULL,
nationality
varchar(255) default NULL,
description
text,
born
int(11) default NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
CREATE TABLE books
(
id
int(11) NOT NULL auto_increment,
title
varchar(255) default NULL,
description
text,
quantity
int(11) default NULL,
year
int(11) default NULL,
date
date default NULL,
min_quantity
int(11) default NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
CREATE TABLE whishlists
(
id
int(11) NOT NULL auto_increment,
date
date default NULL,
book_id
int(11) NOT NULL,
user_id
int(11) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Ed i rispettivi modelli:
class User < ActiveRecord::Base
has_many :whishlists, :order => “date”
end
class Whishlist < ActiveRecord::Base
belongs_to :book, :foreign_key => “bookId”
belongs_to :user, :foreign_key => “userId”
end
class Book < ActiveRecord::Base
validates_presence_of :title
validates_presence_of :description
validates_numericality_of :quantity
validates_numericality_of :year
validates_numericality_of :min_quantity
validates_presence_of :date
has_and_belongs_to_many :authors
has_many :whishlists , :order => “date”
end
Il Controllore di user nell’azione incriminata:
def show
@user = User.find(params[:id])
@whish= Whishlist.find(:all, :conditions=>[“user_id
=?”,params[:id]])
end
Ed Infine la vista:
<% for column in User.content_columns %>
<%= column.human_name %>: <%=h @user.send(column.name) %>
<% end %><%= link_to ‘Edit’, :action => ‘edit’, :id => @user %> |
<%= link_to ‘Back’, :action => ‘list’ %>
WhishList
<%= book.title%> |
Vorrei estrarre tutte le whish legate ad un utente visualizzandone il
titolo del libro.
Continuo a ricevere il seguente errore, chiamando l’azione show con id 1
Showing app/views/users/show.rhtml where line #13 raised:
undefined method `books’ for #Array:0x3469288
Qualcuno riesce a farmi capire dove sbaglio?
Grazie mille!