Ricerca all'interno di una collezione

Qualcuno mi sa dire perchè non mi funziona la seguente sintassi ?

Question.find_by_admin_id(session[:admin_id])

Avrei bisogno che mi venisse restituita una collezione di oggetti
Question che abbiano come campo “admin_id” quello contenuto nella
sessione.

Grazie per l’attenzione.

Davide S. wrote:

Qualcuno mi sa dire perchè non mi funziona la seguente sintassi ?

Question.find_by_admin_id(session[:admin_id])

Avrei bisogno che mi venisse restituita una collezione di oggetti
Question che abbiano come campo “admin_id” quello contenuto nella
sessione.

La query ti restituisce il primo record che ha il campo “admin_id”
uguale al valore che passi.

Se vuoi la collezione di tutti i record, prova

Question.find_all_by_admin_id(session[:admin_id])

Anche facendo come dici non funziona.
La collezione risulta vuota.

Forse perchè non ho impostato un valore di default per l’attributo
admin_id ??

In questo caso come posso impostarlo ?

ma tu che risultato vuoi? esistono effettivamente dei record con
l’admin_id che specifichi?

Infatti… non credo che esistano… come posso specificare un valore di
default per un attributo di un record ??

2008/11/4 Davide S. [email protected]:

Anche facendo come dici non funziona.
La collezione risulta vuota.

Forse perchè non ho impostato un valore di default per l’attributo
admin_id ??

In questo caso come posso impostarlo ?

ma tu che risultato vuoi? esistono effettivamente dei record con
l’admin_id che specifichi?

Pietro G. wrote:

Il 4 novembre 2008 16.08, Davide S. [email protected]
ha scritto:

Infatti… non credo che esistano… come posso specificare un valore di
default per un attributo di un record ??

perdonami, ti rifaccio la domanda: cosa vuoi che faccia l’applicazione?

se per valore di default intendi un valore da utilizzare quando
session[:admin_id] � nil, la risposta � semplice,

question.find_all_by_admin_id(session[:admin_id] ||
il_valore_che_piace_a_te)

resta da capire qual �, appunto, il valore che piace a te, vale a
dire, cosa vorresti che la query ti restituisse.

Gli oggetti Question vengono creati tramite il form di uno scaffold.

Io vorrei ottenere una collezione di oggetti Question che abbiano
l’attributo admin_id uguale a quello contenuto nella sessione (che
identifica l’amministratore).

Il problema è che questi oggetti Question hanno l’attributo admin_id,
però non so come impostarlo in fase di creazione della domanda.
Quando creo una domanda, vorrei che il campo admin_id fosse impostato in
automatico al valore session[:admin_id]

Il 4 novembre 2008 16.08, Davide S. [email protected]
ha scritto:

Infatti… non credo che esistano… come posso specificare un valore di
default per un attributo di un record ??

perdonami, ti rifaccio la domanda: cosa vuoi che faccia l’applicazione?

se per valore di default intendi un valore da utilizzare quando
session[:admin_id] è nil, la risposta è semplice,

question.find_all_by_admin_id(session[:admin_id] ||
il_valore_che_piace_a_te)

resta da capire qual è, appunto, il valore che piace a te, vale a
dire, cosa vorresti che la query ti restituisse.

ok, questo devi farlo nel controller, nel punto in cui avviene la
creazione. se hai difficolt�, manda in lista il contenuto del metodo
create del controller.

def create
@question = Question.new(params[:question])
@question.admin_id = session[:admin_id]

Ho fatto così, però continua a non mettermi nessun valore nell’attributo
admin_id (che è una foreign key alla classe Admin).

Il 4 novembre 2008 16.40, Davide S. [email protected]
ha scritto:

def create
@question = Question.new(params[:question])
@question.admin_id = session[:admin_id]

Ho fatto così, però continua a non mettermi nessun valore nell’attributo
admin_id (che è una foreign key alla classe Admin).

  1. nel … c’è anche @question.save ?
  2. session[:admin_id] ha un valore diverso da nil ?
  1. nel … c’� anche @question.save ?
  2. session[:admin_id] ha un valore diverso da nil ?

Ok, ora funziona… non mi funzionava perchè avevo messo un accessor per
l’attributo… evidentemente lo scaffold crea automaticamente gli
accessor e dà errore se vengono specificati.

Grazie mille.

Il 4 novembre 2008 16.24, Davide S. [email protected]
ha scritto:

Il problema è che questi oggetti Question hanno l’attributo admin_id,
però non so come impostarlo in fase di creazione della domanda.
Quando creo una domanda, vorrei che il campo admin_id fosse impostato in
automatico al valore session[:admin_id]

ok, questo devi farlo nel controller, nel punto in cui avviene la
creazione. se hai difficoltà, manda in lista il contenuto del metodo
create del controller.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs