Matto

scusate ma ho qualche problemino da risolvere:

ho un database con una tabella che contiene dei libri e voglio fare una
query che li selezioni per titolo:

Vista:

Cerca libro per titolo

Cerca Libro per titolo

<%=link_to "cerca per news", :action =>"new" %>

<%=link_to "cerca per autore", :action =>"autore" %>

<%=start_form_tag(:action => "risultato") %> <%= text_field("title", "size" =>40) %> <%= submit_tag("CERCA") %>

controller cerca_libro
class CercaLibroController < ApplicationController
.
.
def risultato
@books=Book.find_on_title(params[:title])
end
.
.
modello book:

class Book < ActiveRecord::Base
belongs_to :category
has_and_belongs_to_many :authors
has_and_belongs_to_many :carts
def self.find_on_new
find(:all,:conditions =>“data_inserimento <= now()”,
:order =>“data_inserimento desc”)
end
def self.find_on_title(title)
#title = params[:title]
find(:all, :conditions =>[“titolo = ?”,title])
end
def self.find_on_author(author)
find(:all, :conditions =>[“anno = ?”,anno])
end
end

non mi funziona credo che il parametro title non arrrivi al modello book

please help me!!!

— andrea [email protected] ha scritto:

scusate ma ho qualche problemino da risolvere:

ho un database con una tabella che contiene dei
libri e voglio fare una
query che li selezioni per titolo:

scusa vado di corsa e non ti rispondo
approfonditamente… ma sapevi che ActiveRecord ti
genera in automatico i metodi di ricerca per i campi?
Quindi dovresti già avere Book.find_by_title(titolo)
se la tua tabella books ha una colonna “title”.


icq: #69488917
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info

Chiacchiera con i tuoi amici in tempo reale!
Yahoo Search - Ricerca nel Web | Motore di Ricerca

gabriele renzi wrote:

— andrea [email protected] ha scritto:

scusate ma ho qualche problemino da risolvere:

ho un database con una tabella che contiene dei
libri e voglio fare una
query che li selezioni per titolo:

scusa vado di corsa e non ti rispondo
approfonditamente… ma sapevi che ActiveRecord ti
genera in automatico i metodi di ricerca per i campi?
Quindi dovresti gi� avere Book.find_by_title(titolo)
se la tua tabella books ha una colonna “title”.

Ti ringrazio per la disponibilità non sapevo questa cosa…ma
funziona anche se la mia tabella ha la colonna titolo invece che title?

Il mio problema è che non riesco a passare il parametro dalla vista al
modello… oppure non so…cioè se inserisco un titolo presente in
tabella non lo visualizza … forse c’è qualche errore !!!

Grazie mille

Il 30-07-2006 Andrea P. ha scritto:

Ti ringrazio per la disponibilità non sapevo questa cosa…ma
funziona anche se la mia tabella ha la colonna titolo invece che
title?

Ovviamente si. Ma io personalmente ti consiglio quanto più possibile di
usare nomi inglesi. In primo luogo altri programmatori si sentiranno più
incoraggiati a lavorarci.

In secondo luogo siccome Ruby (e simili) è “inglese” (empty?, member?,
insert, delete, delete_if) il tutto da un ibrido che sembra sentir
parlare Salvatore (Il Nome della Rosa, nds).

Ultima cosa… in vari casi usando l’inglese si possono usare funzioni
di manipolazione lessicale già pronti in rails.

My two cents.

Il 30-07-2006 Andrea P. ha scritto:

Ho provato a cambiare titolo in title ma non cambia niente sono in
panico … non arriva il parametro passato dal form della vista
aiutooooooooo!!!

Come si chiamano le colonne del DB?

Enrico F. wrote:

Il 30-07-2006 Andrea P. ha scritto:

Ti ringrazio per la disponibilità non sapevo questa cosa…ma
funziona anche se la mia tabella ha la colonna titolo invece che
title?

Ovviamente si. Ma io personalmente ti consiglio quanto più possibile di
usare nomi inglesi. In primo luogo altri programmatori si sentiranno più
incoraggiati a lavorarci.

In secondo luogo siccome Ruby (e simili) è “inglese” (empty?, member?,
insert, delete, delete_if) il tutto da un ibrido che sembra sentir
parlare Salvatore (Il Nome della Rosa, nds).

Ultima cosa… in vari casi usando l’inglese si possono usare funzioni
di manipolazione lessicale già pronti in rails.

My two cents.

Ho provato a cambiare titolo in title ma non cambia niente sono in
panico … non arriva il parametro passato dal form della vista
aiutooooooooo!!!

Enrico F. wrote:

Il 30-07-2006 Andrea P. ha scritto:

Ho provato a cambiare titolo in title ma non cambia niente sono in
panico … non arriva il parametro passato dal form della vista
aiutooooooooo!!!

Come si chiamano le colonne del DB?

Per quanto riguarda la tabella books :
id
title
anno
prezzo
numero_copie
tempo_riordino
category_id
data_inserimento
descrizione
immagine

Il 31-07-2006 Andrea P. ha scritto:

immagine
E tu hai fatto:

Book.find_all_by_title(“some name”)

e lui che dice?

Enrico F. wrote:
non lo trova : nel database ho un libro dal titolo Fontamara e non me lo
restituisce!! ho provato ad aggiungere nel controller book la riga puts
title e

mi restituisce nil!

ciao,

On 7/31/06, Andrea P. [email protected] wrote:

mi restituisce nil!

Inoltre Book.find_all_by_title(“Fontamara”) prova a farlo dalla
console di rails (lancia script\console), qui deve trovarlo.

Se non lo trovi il problema e’ nel modello, altrimenti puoi
controllare il development.log in corrispondenza delle richieste che
fai:

Cerca le righe tipo:

Processing CercaLibroController#risultato(for 127.0.0.1 at <>) [GET]
Session ID: 350a4b8a893957dca0af7aafea0945f2
Parameters: { << qui avrai stampato l’hash dei parametri >> }

ciao,
Luca

On Jul 29, 2006, at 5:38 PM, andrea wrote:

scusate ma ho qualche problemino da risolvere:

Eccolo qui:

    <%= text_field("title", "size" =>40) %>

La versione “corretta” e’:

<%= text_field_tag(‘title’, ‘’, :size => 40) %>

oppure, se nella action che visualizza questo template c’e’ una
variabile di istanza “@book

<%= text_field(:book, :title, :size => 40) %>

in tal caso la action che esegue la ricerca deve diventare:

@books = Book.find_all_by_title(params[:book][:title])

Stefano C. wrote:

On Jul 29, 2006, at 5:38 PM, andrea wrote:

scusate ma ho qualche problemino da risolvere:

Eccolo qui:

    <%= text_field("title", "size" =>40) %>

La versione “corretta” e’:

<%= text_field_tag(‘title’, ‘’, :size => 40) %>

oppure, se nella action che visualizza questo template c’e’ una
variabile di istanza “@book

<%= text_field(:book, :title, :size => 40) %>

in tal caso la action che esegue la ricerca deve diventare:

@books = Book.find_all_by_title(params[:book][:title])

Yeeeeeesssssssss

Funziona grazie mille a tutti … sono un novizio e quindi mi perdo
parecchio per adesso …

Grazie
Grazie
Grazie
Grazie
Grazie

Andrea

Luca M. wrote:

Cerca le righe tipo:

Processing CercaLibroController#risultato(for 127.0.0.1 at <>) [GET]
Session ID: 350a4b8a893957dca0af7aafea0945f2
Parameters: { << qui avrai stampato l’hash dei parametri >> }

ciao,
Luca

Funziona la ricerca con la consolle; guardando il development mi appare:
Processing CercaLibroController#risultato (for 127.0.0.1 at 2006-07-31
14:39:51) [POST]
Session ID: c9465e620134a465011bb20d3a893a4d
Parameters: {“commit”=>“CERCA”, “action”=>“risultato”,
“controller”=>“cerca_libro”, “book”=>{“title”=>“aa”}}
e[4;36;1mBook Load (0.000000)e[0m e[0;1mSELECT * FROM books WHERE
(title = NULL) e[0m
Rendering cerca_libro/risultato
e[4;35;1mBook Columns (0.000000)e[0m e[0mSHOW FIELDS FROM bookse[0m
Completed in 0.12500 (8 reqs/sec) | Rendering: 0.03100 (24%) | DB:
0.00000 (0%) | 200 OK [http://127.0.0.1/cerca_libro/risultato]

PERCHE’ title=NULL ???