提交 72317883 编写于 作者: A Andrés Mejía

Using more precise method signatures for AR::Relation#first_or_create family of methods.

上级 d03aff7f
......@@ -118,22 +118,22 @@ def create!(*args, &block)
# user.last_name = "O'Hara"
# end
# # => <User id: 2, first_name: 'Scarlett', last_name: 'Johansson'>
def first_or_create(*args, &block)
first || create(*args, &block)
def first_or_create(attributes = nil, options = {}, &block)
first || create(attributes, options, &block)
end
# Like <tt>first_or_create</tt> but calls <tt>create!</tt> so an exception is raised if the created record is invalid.
#
# Expects arguments in the same format as <tt>Base.create!</tt>.
def first_or_create!(*args, &block)
first || create!(*args, &block)
def first_or_create!(attributes = nil, options = {}, &block)
first || create!(attributes, options, &block)
end
# Like <tt>first_or_create</tt> but calls <tt>new</tt> instead of <tt>create</tt>.
#
# Expects arguments in the same format as <tt>Base.new</tt>.
def first_or_new(*args, &block)
first || new(*args, &block)
def first_or_new(attributes = nil, options = {}, &block)
first || new(attributes, options, &block)
end
alias :first_or_build :first_or_new
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册