Well, the simplest reason would be that anyone else who works on that project will probably refer to it in the plural while working on the code, then have to realize "oh, they decided to not follow convention in that one controller" after an unspecified time period of "WTF?" while they try to figure out what they are doing wrong. Also semantically, your controller is a controller of ALL the Portfolios in the Portfolio table.
Code-wise you will have issues with routes. You will have to craft a bunch of non-standard routes because http://my_app/portfolios
goes to the index
action of the controller by default. You then show a particular portfolio with http://my_app/portfolios/1
which will show you the portfolio with the id
of 1
. So be prepared to create and maintain a host of custom routes in your config/routes.rb
file. You see similar problems with things that have names that are the same whether plural or singular like equipment
where you can have one piece of equipment or many pieces of equipment. See this: rails link path and routing error when model singular and plural name are the same (e.g. equipment, species). Not only is it making your routes wonky, it is causing conflicts in methods like portfolio_path
or portfolio_url
.