Clarification from my last post: the reason that you might not see the
new row even from WITHIN the same transaction is because the result of a
query is essentially cached. I.e. if you took out the first Task.all
count from my example, the second one WOULD include the new row.
Daniel N wrote:
On 1 February 2011 16:36, Chris Mayan <[email protected]
<mailto:[email protected]>> wrote:
Hi all,
Just quick query that's been bugging me this afternoon:
Is .save / .save! synchronous?
i.e. After I call that line - should the database row be created in
the DB before executing the next line?
I'm just puzzled as to why step by step debugging, I don't see the DB
row created at all even several lines afterwards.
Is this because the .save! is inside a transaction block, so Rails on
purpose does not actually do any DB actions until the very end of the
transaction block?
(I always though it committed, and then does a rollback if the
transaction fails... meaning I should still see that DB entry in there
after the .save line is executed irrespective of the transaction
block)
Hi Chris,
The transactions kinda work that way. Your database server will write
to the db in a non-commited way while you're inside a transaction
block. This means that if you're trying to read the database from
another connection, like the cli or navicat, the data won't be there
until the transcaction block is all done. It's done this way to
prevent reads happening, and then the transaction fails. The
transaction is only 'pre' written inside the transaction block (i.e.
it's written as far as that connection is concerned) and then when
it's done it's finally committed...
hth
Daniel
Thanks,
Chris
--
You received this message because you are subscribed to the Google
Groups "Ruby or Rails Oceania" group.
To post to this group, send email to
[email protected]
<mailto:[email protected]>.
To unsubscribe from this group, send email to
[email protected]
<mailto:rails-oceania%[email protected]>.
For more options, visit this group at
http://groups.google.com/group/rails-oceania?hl=en.
--
You received this message because you are subscribed to the Google
Groups "Ruby or Rails Oceania" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rails-oceania?hl=en.
--
You received this message because you are subscribed to the Google Groups "Ruby or
Rails Oceania" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rails-oceania?hl=en.