Si supponga Ho un ambito denominato:Controllare se l'istanza modello rientra nella named_scope rotaie
class Foo < ActiveRecord::Base
named_scope :bar, :conditions => 'some_field = 1'
end
Questa grande opera per le query e ho un sacco di named_scopes utile definita. Quello che vorrei è essere in grado di fare questo:
f = Foo.find(:first)
f.some_field = 1
f.is_bar? #=> true
Il '.bar?' il metodo restituirà semplicemente true o false se l'istanza del modello rientra nell'ambito denominato. C'è comunque modo di farlo senza scrivere un 'is_bar?' metodo anche se ho già scritto un buon modo per verificare se qualcosa 'is_bar?' Se ricordo male, DRY è buono quindi qualsiasi aiuto sarebbe molto apprezzato/
grazie. Ok, fingi di aver chiamato .save dopo aver cambiato il valore. Foo.bar.exists? (Foo.find (: first)) restituirà true o false a seconda che rientri nell'ambito della barra? Eccezionale. – user94154
corretto. Non dovresti nemmeno chiamare di nuovo Trova. "f.save; Foo.bar.exists? (f)" dovrebbe funzionare. – ryanb
Questo è diventato più facile dal 2009? –