Um pouco mais sobre named_scopes
Um pouco mais? Mas cadê o primeiro artigo sobre isso? Bom, não o escrevi, mas vou partir do ponto em que parou o Nando Vieira em seu artigo sobre named_scopes. Logo, assumo que você já sabe o que é um named_scope e conhece algumas possibilidades, como condições dinâmicas e encadeamento de named_scopes.
Apenas lendo uma introdução aos named_scopes já dá pra ficar bem empolgado. É um recurso simples e, ao mesmo tempo, poderoso e, quando bem utilizado, pode resulta no código bonito e sucinto que buscamos todo dia.
Vamos, então, explorar mais algumas possibilidades desse recurso.
Clique para ver o artigo completo…
Ruby quick tip: Blocos para fallback em hash lookups
Normalmente, ao tentar fazer um lookup em um hash com uma chave não existente, você tem o seguinte comportamento:
>> h = {:foo => "bar"} => {:foo=>"bar"} >> h[:other_foo] => nil
Você pode adicionar um bloco para tratar esses casos:
>> h = Hash.new { |hash, key| "#{key} is not here"} => {} >> h[:foo] => "foo is not here"
É possível, inclusive, alterar o hash em questão:
>> h = Hash.new { |hash, key| hash[key] = "value for #{key}" } => {} >> h[:foo] => "value for foo"
