U try ? escopo: find_visibles, lambda { find_in_coverage|find_know_ missing}
2012/5/22 azizmb.in <m...@azizmb.in> > Hi Gustavo > > Coincidentally, I was recently doing something similar. Older versions of > rails used to evaluate my previous solution using " | " to an > ActiveRelation. When this stopped I dont know, or maybe I am just mistaken. > In any case, I finally settled on using the squeel > gem<https://github.com/ernie/squeel>, > the arel docs, I agree are quite horrible. > > There are examples on 'OR' queries with squeel on the github readme. > > On Tue, May 22, 2012 at 11:18 PM, Gustavo de Sá Carvalho Honorato < > gustavohonor...@gmail.com> wrote: > >> @Rogerio: This way the scopes are merged with AND not OR >> >> @Jeremy: I've read README and I haven't found a way to join scopes with >> OR, as you mentioned. The only way I found is to join attributes with OR, >> not scopes. I've tried that hack (where_clauses.join('OR')) before too. The >> problem is that, for some reason, it don't work when we use the scope >> chained with a association. >> >> I've googled a lot and I found a lot of people complaining about this >> missing feature. I'm a big fan of Rails, but it is a pitty that Rails >> doesn't give any simple way to do that. I really want to avoid that, but >> the best solution that I can see is to duplicate the code of the first two >> scopes on find_visibles. >> >> Thanks, >> Gustavo >> >> >> On Mon, May 21, 2012 at 10:25 PM, Rogerio Medeiros <arge...@gmail.com>wrote: >> >>> try >>> >>> escopo: find_visibles, lambda { find_in_coverage.find_know_missing} >>> >>> >>> >>> 2012/5/21 Gustavo de Sá Carvalho Honorato <gustavohonor...@gmail.com> >>> >>>> The problem of the first solution is that "find_in_coverage | >>>> find_known_missing" combined that way does not return a scope. It returns >>>> two arrays each and applies | operator on the result. See: >>>> http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-7C >>>> >>>> I've looked arel docs (in fact, I just found poor docs). Can you please >>>> point me where in docs is explaining how I can construct such query? >>>> >>>> Thanks for you attention, >>>> Gustavo >>>> >>>> >>>> On Fri, May 18, 2012 at 3:52 PM, azizmb.in <m...@azizmb.in> wrote: >>>> >>>>> To add to that, if you want to construct complex queries, you should >>>>> have a look at arel <https://github.com/rails/arel>. >>>>> >>>>> >>>>> On Sat, May 19, 2012 at 12:17 AM, azizmb.in <m...@azizmb.in> wrote: >>>>> >>>>>> AFAIK, something like this should work: >>>>>> >>>>>> def find_visibles >>>>>> find_in_coverage | find_known_missing >>>>>> end >>>>>> >>>>>> >>>>>> On Fri, May 18, 2012 at 10:53 PM, Gustavo de Sá Carvalho Honorato < >>>>>> gustavohonor...@gmail.com> wrote: >>>>>> >>>>>>> Hi all! >>>>>>> >>>>>>> I've googled all over and I couldn't find anything about chaining >>>>>>> scopes with OR instead of the default AND. >>>>>>> >>>>>>> I have an Asset model with the following scopes: >>>>>>> >>>>>>> class Asset < ActiveRecord::Base >>>>>>> >>>>>>> (...) >>>>>>> >>>>>>> scope :find_in_coverage, lambda { >>>>>>> where('timestamp(assets.found_at) >= ?', Asset.found_at_limit) } >>>>>>> scope :find_unknown_in_coverage, where('assets.asset_type_id IS >>>>>>> NULL').find_in_coverage >>>>>>> scope :find_known_missing, lambda { where('assets.found_at < ? AND >>>>>>> assets.asset_type_id IS NOT NULL', Asset.found_at_limit) } >>>>>>> >>>>>>> end >>>>>>> >>>>>>> I would like to create another scope ("find_visibles") which is the >>>>>>> OR of "find_in_coverage" and "find_known_missing" scopes, like that: >>>>>>> >>>>>>> scope :find_visibles, find_in_coverage.find_know_missing >>>>>>> >>>>>>> The problem is that this method chain uses AND to concatenate WHERE >>>>>>> clauses. I need this clauses to be concatenated using OR instead. >>>>>>> >>>>>>> How can I do that? >>>>>>> >>>>>>> Thanks in advance, >>>>>>> Gustavo Honorato >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Ruby on Rails: Talk" group. >>>>>>> To post to this group, send email to >>>>>>> rubyonrails-talk@googlegroups.com. >>>>>>> To unsubscribe from this group, send email to >>>>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> - Aziz M. Bookwala >>>>>> >>>>>> Website <http://azizmb.in/> | Twitter<https://twitter.com/azizbookwala> >>>>>> | Github <http://github.com/azizmb> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> - Aziz M. Bookwala >>>>> >>>>> Website <http://azizmb.in/> | Twitter<https://twitter.com/azizbookwala> >>>>> | Github <http://github.com/azizmb> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Ruby on Rails: Talk" group. >>>>> To post to this group, send email to rubyonrails-talk@googlegroups.com >>>>> . >>>>> To unsubscribe from this group, send email to >>>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Ruby on Rails: Talk" group. >>>> To post to this group, send email to rubyonrails-talk@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> rubyonrails-talk+unsubscr...@googlegroups.com. >>>> For more options, visit this group at >>>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>>> >>> >>> >>> >>> -- >>> att, >>> >>> Rogerio >>> >>> A complicação se descomplica na mesma proporção que fazemos os nós se >>> desatarem ao tecer o conhecimento do saber. >>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Ruby on Rails: Talk" group. >>> To post to this group, send email to rubyonrails-talk@googlegroups.com. >>> To unsubscribe from this group, send email to >>> rubyonrails-talk+unsubscr...@googlegroups.com. >>> For more options, visit this group at >>> http://groups.google.com/group/rubyonrails-talk?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to rubyonrails-talk@googlegroups.com. >> To unsubscribe from this group, send email to >> rubyonrails-talk+unsubscr...@googlegroups.com. >> For more options, visit this group at >> http://groups.google.com/group/rubyonrails-talk?hl=en. >> > > > > -- > - Aziz M. Bookwala > > Website <http://azizmb.in/> | Twitter <https://twitter.com/azizbookwala> > | Github <http://github.com/azizmb> > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > -- att, Rogerio A complicação se descomplica na mesma proporção que fazemos os nós se desatarem ao tecer o conhecimento do saber. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.