Rails命名约定之—— 混合大小写,下划线和复数
关键字: Rails命名约定 我们经常使用短语来命名变量和类。在Ruby里通常约定变量的名字全是小字母,单词之间用下划线隔开。类和模块命名则不同:它们没有下划线,短语中采用混合大小写模式——即每个单词的第一个字母以大写开头。这些约定会这样命名变量,比如order_status,和类名字如LineItem。
Rails中采用了这种命名约定并以两种方式进行了扩展。
首先,它假定数据库的表名和变量名一样,都是小写字母,单词之间是下划线。Rails还假定表名总是复数形式。
另一方面,Rails假定文件以带有下划线的小写字母命名。
Rails使用这些命名约定来自动转换名字。例如,你的应用程序可能包含一个model类,它用来处理商品项目。你已经使用Ruby的命名约定来定义这个类,叫LineItem。通过这个名字,Rails将自动推论出以下的规则:
1、对应的数据库表名被称为line_items。这是类名字,被转换成小写字母,并在单词和复数之间使用了下划线。
2、Rails也将知道从一个叫line_item.rb(在app/models目录中)的文件中去寻找类LineItem的定义。
Rails的controller也有额外的命名约定。如果我们的应用程序有一个名为store的controller类,那么会发生以下一些情形:
1、Rails假定类被称为Store的Controller类,并且它是定义在app/controllers目录下store_controller.rb的文件中。
2、它也假设有一个helper模块,它是位于app/helpers目录下的store_helper.rb中。
3、它缺省地接受负责输出的views中的layout 模板存放在目录app/views/layouts/下的store.rhtml或者store.rxml中。
还有些要注意的。
通常情况下,当你第一次引用Rails不知道的类或模块时,Rails使用命名约定来转换类名字为文件名,并试图在后台加载这个文件。这样的好处是不言而喻的,你可以直接引用model类名,这个model将自动加载到你的应用程序中。
正如你所看到的,这种模式在你的类被存储到sessions中时会行不通。因此你必须要明确地声明。即使这样,你也不必使用require。相反,你的控制器只要包含一行,像这样:
class StoreController < ApplicationController
model :line_item
# ...
注意这里的命名约定是如何做到一致的。“:line_time”是带有下划线的小写,它将会把line_item.rb加载进来,这个文件包含类LineItem。
- 浏览: 89293 次
- 性别:

- 来自: 广东

- 详细资料
搜索本博客
我的相册
共 5 张
最近加入圈子
最新评论
-
人间如风来烟去,几片光彩 ...
世间有百味,唯有淡淡的水可以一辈子品尝都不会厌倦。 平淡就是福,能够珍惜不容易。
-- by fshhui -
我生来忧伤
过去的你已不是今天的你 今天的你也不是明天的你 明天的你更不可预见 所以过去的 ...
-- by fshhui -
透过镜头抒写“程序人生” ...
人到中年,身上的担子越来越重,想的东西自然就多了。有同感。 可是能够放下的能有几 ...
-- by fshhui -
VBA简单实现两个Excel文 ...
你好。 请你尊重别人,不要随便透露别人的贷款信息!也许你是无心的,但已经给我造成 ...
-- by baizi17 -
出差一个月
去哪里学习?
-- by longaiqun001






评论排行榜