为什么 Controller 命名为“users_controller.rb”而模型不命名为“user_model.rb”?
为什么有“application_controller.rb”但在views里面文件夹“layout”没有命名为“application”?
最佳答案
当命名支持问题的开发人员内部模型时,代码流出的想法最好。在构建应用程序时,我不会想到查找用户模型 (UserModel.find
) 我会想到查找用户 (User.find
)。另一方面, Controller 是 Web 界面和数据存储(以及业务逻辑)之间的转换层,因此将它们称为不同的东西更有意义。
还有命名空间的问题;如果我的模型和 Controller 都被命名为用户,那么在任何给定时刻我指的是哪个用户?在这种情况下,要么你用它们的类型命名所有东西,这会遇到我上面描述的问题,要么一个“获胜”并被允许被引用为“裸”。模型获胜似乎最有意义,以便提供更好的心理映射。
在 app/views/layout
里面是 application.html.erb
并且你可以有由不同 Controller 选择的其他布局。
然而,最终,这些是在 Rails 开发过程中做出的选择,它们完全是基于开发人员认为最有意义的风格的选择,因此对于您的问题并没有真正的“正确”答案, 很遗憾。事实上,一些类似的决定已经被重新审视。 (application_controller.rb
过去只是命名为 application.rb
。)
关于ruby-on-rails-3 - 为什么模型被命名为 "user.rb"而不是 "user_model.rb"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8623736/