我只是把它扔在那里,因为我真的无法弄清楚。例如,当我调用user.articles.create! { title: 'blah' }
nil 时,返回但创建了对象。我以前从未见过这样的事情,想知道其他人是否有过?
我已经尝试过 rails 3.2.13 和 3.2.12 并且它们都做同样的事情。
编辑
在活动记录中创建和创建!最终以应该返回记录或引发异常的这种方法结束。
def create_record(attributes, options, raise = false, &block)
unless owner.persisted?
raise ActiveRecord::RecordNotSaved, "You cannot call create unless the parent is saved"
end
if attributes.is_a?(Array)
attributes.collect { |attr| create_record(attr, options, raise, &block) }
else
transaction do
add_to_target(build_record(attributes, options)) do |record|
yield(record) if block_given?
insert_record(record, true, raise)
end
end
end
end