The problem is that you're thinking in terms of the database, when you
need to be thinking in terms of resources. When you request
/objects/1, you're not getting an object from the db that has an id of
1, but simply requesting an object identified by "1". Then you do
something interesting with it. The underlying implementation doesn't
matter one bit, nor should it. We're using the web, where everything
is a resource.
In the same vein, when you request /objects/new you're not requesting
a new object, nor are you making an RPC call to Object.new. All
you're doing is requesting the resource identified by /objects/new.
The difference between this resource and the /objects/1 from earlier
is that, by convention, you can't update this particular resource.
This isn't really a web convention, but rather one that Rails gives
you with the default code. You could just as easily write some code
that WOULD allow you to update the resource at /objects/new.
This may seem a bit confusing, and it's likely because I'm not a very
eloquent writer. However it's important that you recognize the
paradigm here - it's not about databases, it's not about procedures,
it's about resources. I recommend reading DHH's "A World of
Resources"  and Alex Bunardzic's various blog posts on resources
. Hopefully they'll help it click for you, as well help you
recognize the importance of this approach.