Forum: Italian Ruby user group Ricerca all'interno di una collezione

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.
F514a744c5dc71c2a67e0f10023efaa8?d=identicon&s=25 Davide Spaggiari (spaggio)
on 2008-11-04 15:28
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.
7daea92c28be2e85196a4f6dfdb2f689?d=identicon&s=25 Claudio Petasecca Donati (etapeta)
on 2008-11-04 15:48
Davide Spaggiari 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])
F514a744c5dc71c2a67e0f10023efaa8?d=identicon&s=25 Davide Spaggiari (spaggio)
on 2008-11-04 15:52
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 ?
8768bcdbda1adf80e4da6744268868af?d=identicon&s=25 Pietro Giorgianni (giorgian)
on 2008-11-04 16:01
(Received via mailing list)
2008/11/4 Davide Spaggiari <davidespaggiari@gmail.com>:
> 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?
F514a744c5dc71c2a67e0f10023efaa8?d=identicon&s=25 Davide Spaggiari (spaggio)
on 2008-11-04 16:08
> 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 ??
8768bcdbda1adf80e4da6744268868af?d=identicon&s=25 Pietro Giorgianni (giorgian)
on 2008-11-04 16:21
(Received via mailing list)
Il 4 novembre 2008 16.08, Davide Spaggiari <davidespaggiari@gmail.com>
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.
F514a744c5dc71c2a67e0f10023efaa8?d=identicon&s=25 Davide Spaggiari (spaggio)
on 2008-11-04 16:24
Pietro Giorgianni wrote:
> Il 4 novembre 2008 16.08, Davide Spaggiari <davidespaggiari@gmail.com>
> 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]
8768bcdbda1adf80e4da6744268868af?d=identicon&s=25 Pietro Giorgianni (giorgian)
on 2008-11-04 16:36
(Received via mailing list)
Il 4 novembre 2008 16.24, Davide Spaggiari <davidespaggiari@gmail.com>
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.
F514a744c5dc71c2a67e0f10023efaa8?d=identicon&s=25 Davide Spaggiari (spaggio)
on 2008-11-04 16:40
> 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).
8768bcdbda1adf80e4da6744268868af?d=identicon&s=25 Pietro Giorgianni (giorgian)
on 2008-11-04 16:46
(Received via mailing list)
Il 4 novembre 2008 16.40, Davide Spaggiari <davidespaggiari@gmail.com>
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 ?
F514a744c5dc71c2a67e0f10023efaa8?d=identicon&s=25 Davide Spaggiari (spaggio)
on 2008-11-04 16:50
> 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.
This topic is locked and can not be replied to.