在这篇帖子中,使用了slice函数来获取params中仅必要的元素。那么我应该使用什么函数来排除params中的一个元素(比如user_id)?
Article.new(params[:article].slice(:title, :body))
谢谢。
Article.new(params[:article].slice(:title, :body))
谢谢。
使用except方法:
a = {"foo" => 0, "bar" => 42, "baz" => 1024 }
a.except("foo")
# returns => {"bar" => 42, "baz" => 1024}
受到除了Rails的ActiveSupport源代码的启发
您可以在不需要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}
except
方法:# Ruby 3+
h.except(:b, :c) # => { a: 1, d: 4}
试试这个
params = { :title => "title", :other => "other", :body => "body" }
params.select {|k,v| [:title, :body].include? k } #=> {:title => "title", :body => "body"}
except
是 Rails 添加的一个方法,在单独使用 Ruby 时通常不可用。 - Wes Fosterexcept
方法。详情请见此处。 - nates