因为需要接手维护一个Rails搭建的网站,所以稍微学了一点Rails,做了一些简单的笔记
安装和使用
使用RailsInstaller在Windows环境下安装rails环境,如果出现:
rake ruby gem
命令有效而rails bundle
命令无效的情况,则需要修改rails.bat
文件,修改其内容为:1
2
3
4
5
6@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
ECHO.This version of Ruby has not been built with support for Windows 95/98/Me.
GOTO :EOF
:WinNT
@"%~dp0ruby.exe" "%~dpn0" %*Rails项目里,
Gemfile
文件内包含了此项目用到的依赖,通过包管理工具gem来安装:gem install gemnames [-v=version]
gem update --system
和gem update
有明显区别,后者会将全部的东西升级到最新。gem install
和bundle install
是不一样的。
- 在Rails的项目里:
bin/rake db: create
需要注意,若在Windows环境下,要在命令里加上ruby(FIXME: 需要回头根据笔记确认)bin/rails g scaffold
可以生成一组model、view和controller——值的注意的是,根据约定,需要特别注意单复数的问题,比如在model中的单数person在controller的RESTFUL里是附属的peoplebin/rake db:migrate
可以瞬间生成一个带有CRUD的数据表。
一些基本认知
Rails是一种MVC实现,
- M层对数据和业务做封装和管理;C层接受请求,决定调用那个M去处理,再决定由哪个V来显示返回的数据,简单地说,控制视图层V的展示逻辑。
- 不重复已有代码
- 它还有一个鲜明特点:约定大于配置,或者说,优先于配置,约定体现在方方面面,比如
- 表、类而言,持久化的类,其名首字母大写,而表名全部小写;类和其对应的表同名,类是单数,表名是复数遵守英文的复数拼写规则;表名多单词的时候,用下划线分割,末词复数,而对应的类每个单词首字母大写,末词一定是单数形式。
- 约定的默认解析:
http://域名/控制器/控制器(c层)中的Action名/请求参数(传给Action)
从代码结构上看:
- Action Pack 封装了“VC”的功能,其中包含Action Controller和Action View
- Active Record 是一个Rails应用程序中模型的基础;其提供了数据库的独立性、基本的CRUD功能、高级查找和模型间的关联等。这是ORM层,任何实体类,都是通过继承他来完成和DB的交互(提供了默认的操作DB的方法)。默认情况下,实体类们和DB的表是一一对应的映射关系,也可以是一对多或者多对多。映射的主键是一名为id且自动增长的int列,访问主键永远使用id,id要唯一。
- Active Resource 提供管理业务的对象之间的链接,和RESTFul Web服务。实现了映射网络资源的方式,和本地对象CRUD的定义;
- Railties 建立任何新Rails应用程序的核心代码,可以整合各个框架和插件。
- Gemfile文件 是Bundler需要的声明依赖包的文件。
路由类型:
- 默认路由
- 资源路由
- 命名路由
- 嵌套路由
- 正则路由