I am new to ruby and rails. I have good experience in C/C++ in other
areas of software. But first time trying hands on Ecommerce site.
Can anybody let me know how much time it may take me to do first
ecommerce site in ruby on rails. Its simply to sell 5 products. I don't
knwo ABC of ruby and rails yet.
It might seem to be stupid question but I seriosuly want to know time
it will take before getting into it as I have Three Months.
It will be great if you can point me to resources/books I can go
through for quick start.
Well if you have three solid months to dedicate you could probably get
pretty close to a finished product. Especially if you understand
programming in general. Rails is powerful, but the power lies in Ruby
and extending things on your own.
I would recommend the following books:
Agile Web Development with Rails 2nd Edition (pragprog.com) - this is
your reference manual, but the step by step tutorial is around an
online book store. The basics, but gives you a good idea.
Then I would try Beginning Ruby on Rails E-Commerce
(http://apress.com/book/bookDisplay.html?bID=10178) - this is slightly
more difficult to follow. I found some points in the book where the
code in the example had changed without them telling me to change it,
and I'd have to jump to the downloadable code for that chapter. This
dives in a bit more into the specifics of ecommerce and also is written
from a test-driven development point of view.
Finally, you need the Pick Axe. The Ruby reference. Buy version 2
(pragprog.com) or browse the online version 1:
http://www.rubycentral.com/book/
Well, to be fair.... you have to store the cart somewhere. In AWDwR, I store the cart in the session, just because I want to illustrate how to do that. But session data is still persisted between requests, typically in the database in a production application. So there's still a database access on each incoming request to fetch this session data.
There is an option to store sessions in memory, but it's generally a bad idea. In particular, it limits you to running just one application process, and you lose session data if you restart that process.
At the start of the processing of a request, if that request contains a session key, then session data corresponding to that key will be read from the database. At most one database read per incoming request will occur to load up session data. These will be a corresponding write to save the session data away at the end of request processing. (All this assumes you're using the database to store session information.)
This generally isn't something to worry about: it just happens. If you get to the point where these two database accesses are a bottleneck (and you'd probably have to have a seriously heavily used application for this to be the case) then you can switch session storage strategies very easily.
Of course you can redefine the handling of the RecordNotFound exception per controller, so you could have a custom 404 message for products not being found and still use the short method I suggested.