Sto guardando un RailsCast su associazioni polimorfiche. http://railscasts.com/episodes/154-polymorphic-association?view=asciicast
Ci sono tre diversi modelli Articolo, Foto ed Evento che ognuno di essi prende un commento da Comment.rb. (Articolo, Foto ed Evento ciascuno di un article_id, photo_id e event_id). Nell'elencare i commenti che ha il problema di capire quale dei 3 modelli alla lista dei commenti per, quindi lo fa nell'azione index
def index
@commentable = find_commentable
@comments = @commentable.comments
end
def find_commentable
params.each do |name, value|
if name =~ /(.+)_id$/
return $1.classify.constantize.find(value)
end
end
nil
end
La mia domanda è, che cosa è $1
?
il suo unico creato quando si utilizza l'operatore tilde uguale ?? –
Sì, '$ 1',' $ 2' ecc. Corrispondono al primo, al secondo, ecc. Gruppi con parentesi nell'ultima espressione regolare - vedere il collegamento nella risposta. Rubocop raccomanda invece di utilizzare 'Regexp.last_match (n)' (la nota n è basata su zero, quindi '$ 1' ==' #last_match (0) ' – MatzFan