Why controllers are named “users_controller.rb” and models are not named “user_model.rb”?
Why there is “application_controller.rb” but inside views the folder “layout” is not named “application”?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Code flows from thought best when the naming supports the developers internal model of the problem. When building an application, I don’t think of finding a user model (
UserModel.find) I think of finding a user (User.find). On the other hand, the controllers are the translation layer between the web interface and the data store (and business logic), so it makes more sense to call them something different.There’s also the problem of namespacing; if both my model and controller are named User, then which User am I referring to at any given moment? In this case, either you name everything with their type, which runs into the problem I describe above, or one ‘wins’ and is allowed to be referenced ‘bare’. It seems to make the most sense that the model would win, so as to provide a better mental mapping.
Inside
app/views/layoutisapplication.html.erband you can have other layouts which are selected by different controllers.In the end, however, these were choices made during the development of Rails, and they are entirely stylistic choices based on what the developers thought made the most sense, so there isn’t really a ‘right’ answer to your question, unfortunately. In fact, some similar decisions have been revisited. (
application_controller.rbused to just be namedapplication.rb.)