Hi all,

taking my baby steps in Datamapper and liking it a lot so far.
However, I've been stumped for quite a while now with some issue with
before :create.

In short, I've got a fairly simple setup with this in a Sinatra post
method

---
if @node && @node.search_token == params[:search_token]
    Presence.create(:user_id => 1, :node_id => @node.id, :status =>
'active')
    redirect "/node/"[email protected]_s
  end
---

And this in the Presence DM model

--
class Presence
  include DataMapper::Resource

  belongs_to :node

  before :create do
    puts "* invoking before :create for Presence"

  end

..

end
--


And the result is this:

--
* invoking before :create for Presence created at
2009-05-08T15:17:56+02:00
* invoking before :create for Presence created at
2009-05-08T15:17:56+02:00
127.0.0.1 - - [08/May/2009 15:17:56] "POST /node/1/checkin HTTP/1.1"
302 - 0.0151
127.0.0.1 - - [08/May/2009 15:17:56] "GET /node/1 HTTP/1.1" 200 498
0.0094
* invoking before :create for Presence created at
2009-05-08T15:17:59+02:00
* invoking before :create for Presence created at
2009-05-08T15:17:59+02:00
* invoking before :create for Presence created at
2009-05-08T15:17:59+02:00
* invoking before :create for Presence created at
2009-05-08T15:17:59+02:00
127.0.0.1 - - [08/May/2009 15:17:59] "POST /node/1/checkin HTTP/1.1"
302 - 0.0120
127.0.0.1 - - [08/May/2009 15:17:59] "GET /node/1 HTTP/1.1" 200 498
0.0043
* invoking before :create for Presence created at
2009-05-08T15:18:03+02:00
* invoking before :create for Presence created at
2009-05-08T15:18:03+02:00
* invoking before :create for Presence created at
2009-05-08T15:18:03+02:00
* invoking before :create for Presence created at
2009-05-08T15:18:03+02:00
* invoking before :create for Presence created at
2009-05-08T15:18:03+02:00
* invoking before :create for Presence created at
2009-05-08T15:18:03+02:00
127.0.0.1 - - [08/May/2009 15:18:03] "POST /node/1/checkin HTTP/1.1"
302 - 0.0288
127.0.0.1 - - [08/May/2009 15:18:03] "GET /node/1 HTTP/1.1" 200 498
0.0053
--


As you can see, the hook is invoked 2*records in the database. The
create itself behaves flawlessly and inserts only one field in the db.

Any hint? I'm betting for some kind of dumbness on my side, but I
haven't been able to pinpoint it yet, after quite a while looking at
it

Thanks in advance







--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"DataMapper" 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/datamapper?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to