Is there an opposite function of slice function in Ruby?

Try this

params = { :title => "title", :other => "other", :body => "body"  }

params.select {|k,v| [:title, :body].include? k  } #=> {:title => "title", :body => "body"}  

Use except:

a = {"foo" => 0, "bar" => 42, "baz" => 1024 }
a.except("foo")
# returns => {"bar" => 42, "baz" => 1024}

Inspired in the sourcecode of except in Rails' ActiveSupport

You can do the same without requiring active_support/core_ext/hash/except

    # h.slice( * h.keys - [k1, k2...] )

    # Example:
    h = { a: 1, b: 2, c: 3, d: 4 }
    h.slice( * h.keys - [:b, :c] ) # => { a: 1, d: 4}