Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 为什么命名为“模型”;user.rb";而不是",;用户“U model.rb”是什么;?_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 3 为什么命名为“模型”;user.rb";而不是",;用户“U model.rb”是什么;?

Ruby on rails 3 为什么命名为“模型”;user.rb";而不是",;用户“U model.rb”是什么;?,ruby-on-rails-3,Ruby On Rails 3,为什么控制器名为“users\u controller.rb”,而模型名为“user\u model.rb” 为什么有“application\u controller.rb”,但在内部视图中,文件夹“layout”没有命名为“application”?Ruby on Rails遵循以下原则。特别是命名约定,Rails在将路由映射到控制器、自动加载和重新加载类、为操作和许多其他功能找到合适的模板时广泛使用 这一原则导致了一些限制,因为你不可能轻易打破一些惯例而不陷入麻烦。但另一方面,它使我们的生

为什么控制器名为“users\u controller.rb”,而模型名为“user\u model.rb”

为什么有“application\u controller.rb”,但在内部视图中,文件夹“layout”没有命名为“application”?

Ruby on Rails遵循以下原则。特别是命名约定,Rails在将路由映射到控制器、自动加载和重新加载类、为操作和许多其他功能找到合适的模板时广泛使用

这一原则导致了一些限制,因为你不可能轻易打破一些惯例而不陷入麻烦。但另一方面,它使我们的生活更轻松,因为我们的配置量更小,并且可以轻松地从一个Rails项目移动到另一个Rails项目,因为它们都具有相似的结构,并且遵循相同的约定。此外,我认为,这使得Rails核心开发变得更加容易,因为核心团队拥有大量关于使用Rails的项目将如何构造的信息,而且他们不必担心太多的泛化问题。他们只是假设你遵守规则和惯例


不过,我怀疑许多命名约定背后是否有严肃的理由。我想在某个时候,有人刚刚决定,如果Rails都有
Controller
后缀,那么Rails将更容易处理您的控制器,并将它们与其他类区分开来。在这里,我们的所有控制器都位于
app/controllers
目录中,并带有该后缀。

当命名支持问题的开发人员内部模型时,代码从Think best中流出。在构建应用程序时,我不想查找用户模型(
UserModel.find
),而是想查找用户(
user.find
)。另一方面,控制器是web界面和数据存储(以及业务逻辑)之间的转换层,因此将它们称为不同的东西更有意义

还有名称空间的问题;如果我的模型和控制器都是命名用户,那么在任何给定时刻我指的是哪个用户?在本例中,您可以用它们的类型命名所有内容,这会遇到我上面描述的问题,或者一个“wins”并允许被引用为“bare”。似乎最有意义的是,模型将获胜,从而提供更好的心理映射

app/views/layout
内部是
application.html.erb
,您可以拥有由不同控制器选择的其他布局


然而,最终,这些都是在Rails开发过程中做出的选择,它们完全是基于开发人员认为最有意义的风格选择,因此很遗憾,您的问题没有真正的“正确”答案。事实上,一些类似的决定已经被重新审视。(
application\u controller.rb
过去只是命名为
application.rb

实际上,
app/views
目录包含一个
layouts
目录,其中包含一个
application.html.erb
文件,该文件就是应用程序布局。为什么它如此重要?如果它们是anmed#####u model.rb,它会帮助您更好地编写代码吗?