Is it common practice that stored procedures/sql functions are not preferred to use?
It is very common, most Rails apps will never need to use anything more than ActiveRecord.
One of the chief philosophies behind Rails is that it's more important to get a working product to market today than it is to get a "fast" product to market 6 months from now. Your product will almost certainly never be popular enough for performance to be a concern. If that does become a problem, you can shore up the performance side of things later, but the immediate concern is to be able to build an app quickly, and to be able to rapidly refactor some or all of it in response to your market.
What are pros and cons of using stored procedures?
They're slower to write and more difficult to change, and therefore front-load your development costs. However, they can be faster to execute.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…