Ruby on Rails项目文件目录结构
README 说明文档
Rakefile 生成脚本
app/ 存放项目的Model, View和Controller等文件
components/ 存放可重复使用的组件, 现在已经不大使用
config/ 配置文档及数据库连接配置文档
db/ 存放数据库schema和migration信息
doc/ 存放自动生成的文档
lib/ 存放在Model, View和Controller间共享的代码
为方便整理,不同功能的代码可放到其不同的子目录下.
调用sub_dir下的my_lib_code.rb代码的方法为: require "sub_dir/my_lib_code"
log/ 存放程序生成的日志文件
里面有三个最主要的log为:development.log, test.log和production.log,分别对应不同的运行环境.
public/ 存放对网络公开的文件
script/ 存放脚本工具
不带参数直接运行大多数的脚本工具可以显示出相应的使用帮助信息.
常见的script:
about
breakpointer
destroy<=>generate
server
script/performance/benchmarker
test/ 测试工具
tmp/ 存放临时文件, 如缓存, session, socket…
vendor/ 存放外来代码, 如外来插件, 也可用来放rails构架本身, 以使rails兼容不同版本需求的程序.
运行环境
使用-e XXXX切换运行环境:
ruby script/server -e production #默认为development
配置数据库参数
修改config/database.yml文件
配置环境
修改config/environment.rb文件.
命名规范
所有变量以小写字母单词命名,单词间用下划线"_"分隔. 如order_status
所有class和module以大写开头的单词命名,单词间直接连接,如: LineItem
数据库中所有表格命名形式同变量名,且全为复数形式,如:orders
所有文件名命名形式也同变量名
Rails可推论相关文件名, 所以在框架内可以节省很多require "xxx". Rails会自动加入相关的调用.
Rails关于文件名的思维逻辑实例:
如果一个class名为:LineItem
ralis将推出:
1.此class对应的数据库表格名为line_items.
2.此class对应的文件名为line_item.rb
….
创建model下的controller
ruby script/generate controller Admin::Book action1 action2 …
使用debug() helper method
<%=debug(@order) %>
转载请注明: 转自船长日志, 本文链接地址: http://www.cslog.cn/Content/ruby_on_rails_file_structure/
你好,我请教一个问题。运行环境development、test、production三个,他们之间有什么区别?不同的运行环境是不是有些东西会被限制?
development的你每次代码的更改都会马上生效。 production中不会,更新代码后你要重启server,但代码执行速度更快点。test中每次数据库中的数据都会被清零的。 详细查一下相关文档。