If you think that method would be useful there is no reason why it should be 
Rails specific. Please send a feature request to the Ruby issue tracker here 
https://bugs.ruby-lang.org/.

Rafael França

On May 11, 2018, 13:10 -0400, Alberto Almagro <albertoalma...@gmail.com>, wrote:
> These days I have been comparing records in my daily job lots of times, which 
> made me think about a better way to retrieve and compare them. When I want to 
> navigate through several relations in a collection I often see myself writing 
> code like the following:
>
> Given orders as a collection of Order:
> > orders.map(&:order_option).map(&:item).map(&:title)
> => ['Foo', 'Bar', 'Baz']
>
> That is, chaining maps with Symbol to Proc coercions one after each other. 
> Sharing my thoughts with my company's architect we came up with the 
> alternative:
> > orders.map { |order| order&.order_option&.item&.title }
>
> But we agreed that the notation was awful and didn't improve what we had 
> before. With this, I proposed what I think it is more like what we would 
> expect Ruby to have. I would like to add a notation similar to the one we can 
> find at Array#dig or Hash#dig in the following manner:
> > orders.map(&:order_option, &:item, &:title)
> The method doesn't necessarily need to be named map or collect, we can agree 
> on a different name for it if you want. Please share your thoughts with me. 
> If you like this, I would be very happy to write a PR to include it in Rails.
>
> Cheers,
> Alberto Almagro
> --
> You received this message because you are subscribed to the Google Groups 
> "Ruby on Rails: Core" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to rubyonrails-core+unsubscr...@googlegroups.com.
> To post to this group, send email to rubyonrails-core@googlegroups.com.
> Visit this group at https://groups.google.com/group/rubyonrails-core.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at https://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to