On the other forum on stackoverflow, someone provided this as a
solution for the following use case: “I want to check by an unique ID
whether a record is already created. If it is, I want to add 1 to the
amount attribute. If it is not, I want to create it and set the amount
attribute to 1.”
Here was their solution:
@have = current_user.haves.find_or_initialize_by_id(params[:have]) do |
h|
h.amount = 0
end
I don’t think it’s a great one, but I have a question about the block.
Let’s say the record already exists and so the find is triggered and
when the record is queried, it has an amount value of 3. When that
block is executed, it looks like the amount value would be assigned a
value of 0. Or am I missing something?