Hacker News new | ask | show | jobs
by jeremyevans 3636 days ago
That isn't a problem in Sequel, as you can pass a complex expression to #or, in which case it works as you would expect it to:

    Post.where(id: 1).or(Sequel.&({:id=>2}, {:name=>'Foo'}))
    # SELECT * FROM posts WHERE ((id = 1) OR ((id = 2) AND (name = 'Foo')))
1 comments

Yay, Jeremy Evans spreading some Sequel knowledge ^_^

Big fan of Sequel; it's super sleek. As a side-note to Jeremy's comment, while (i guess) he used Sequel.& to demonstrate that OR and AND conditions can be combined freely, there are more succinct ways of expressing that particular query:

  # Using the a "virtual row" block:
  Post.where(id: 1).or{(id =~ 2) & (name =~ 'Foo')}

  # Or, if you don't fancy that kind of block magic, simply passing a Hash, 
  # the same way as with .where
  Post.where(id: 1).or(id: 2, name: 'Foo')