Voglio scrivere un named scope per ottenere un record dal suo id.Come posso rendere named_scope in Rails restituire un valore invece di un array?
Ad esempio, ho un modello chiamato Event
e voglio simulare Event.find(id)
con l'uso di named_scope
per flessibilità futura.
Ho usato questo codice nel mio modello:
named_scope :from_id, lambda { |id| {:conditions => ['id= ?', id] } }
e mi chiamano dal mio controller come Event.from_id(id)
. Ma il mio problema è che restituisce una matrice di oggetti Event
invece di un solo oggetto.
Così se voglio ottenere il nome dell'evento, devo scrivere
event = Event.from_id(id)
event[0].name
mentre quello che voglio è
event = Event.from_id(id)
event.name
sto facendo qualcosa di sbagliato qui?
hi Jimmy Grazie per la rapida risposta.Perché voglio avere uno scope con nome è (come ho accennato nel commento di Damien) perché in un secondo momento potrei voler ottenere solo gli eventi attivi Quindi posso cambiare solo l'ambito con il nome senza rompere il codice esistente (come solo aggiungendo attivo = 1) Per favore fatemi sapere i vostri commenti applausi, stessa cosa – sameera207