Идиоматический способ сделать это состоит в том, чтобы использовать значения по умолчанию nil в хешах.
> myHash = {:x => :y} # => {:x=>:y}
> myHash[:d] # => nil
Таким образом, вы можете установить либо :customer_id
, либо :customer_attributes
, no, если требуется оператор, и более поздний тест, для которого он присутствует. При этом вы можете отдать предпочтение :customer_id
.
unless purchase[:customer_id].nil?
@customer = Customer.find(purchase[:customer_id])
else
@customer = Customer.create!(purchase[:customer_attributes])
end