ruby-on-rails-3 - 为什么模型被命名为 "user.rb"而不是 "user_model.rb"?

标签 ruby-on-rails-3

为什么 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/

相关文章:

ruby-on-rails-3 - Rails -- fields_for 不工作?

ruby-on-rails - 在 ActionMailer 中使用助手

ruby - 导轨 3 : Many-to-Many relation with condition

ruby-on-rails - 如何使用 'where'的 'ActiveRecord::QueryMethods'方法来限制搜索?

ruby-on-rails-3 - 继续获取发送消息所需的发件人(返回路径、发件人或发件人)

ajax - Rails 3.1 全选复选框

ruby-on-rails - redirect_to @语法含义

ruby-on-rails - 调整缩放 Gmaps4Rails

ruby-on-rails - 验证失败时如何保留文件字段值

mysql - 将 Ruby 版本与 MySql 客户端混合使用时出现问题