配置文件位置
|
/config/routes.rb |
最简单的定义方法 |
get ('hello/index', to: 'hello#index')
请求接入1时,呼出2方法
两者一样时,可以省略第二个参数
get ('hello/index') |
自动配置路径
routes.rb
resources: controller-name |
|
|
|
|
|
|
|
|
|
迁移
migration
|
表格的生成与修改
迁移文件: 为表格的生成与修改准备的文件
位置/db/migrate/20170527032900_create_books.rb |
|
|
|
|
|
|
|
|
视图控制器
|
controller |
视图控制器位置 |
/app/controllers/.....rb
例子/app/controllers/sample_controller.rb
P28 |
|
|
|
|
|
|
|
|
|
|
视图
|
view |
视图位置 |
视图位置 |
/app/view/控制器名/方法名.rb
例子 /app/view/sample/action.html.erb
注意:后缀html.erb |
|
|
|
|
|
|
|
|
|
|
|
|
|
视图方法 |
超链接 |
方法定义 |
link_to(body, url [, html_option]) |
参数含义 |
body: 链接的文字 |
url: 网址(或者参数) |
html_option: 对《a》指定的属性
例: class: 'sample' , title: 'also a sample' |
|
特殊的网址参数
对象 |
《% @books.each do |book| %》
《td》《%= link_to 'Show', book %》《/td》
《% end %》
链接对象是Book类的对象,Rails会获取book.id
然后链接目标(リンク先)的路径和book.id相同
也就是.../1, 2, 3 ...
.../为现在路径 |
视图助手
view helper |
路径设置
/config/routes.rb |
resources: controller-name |
自动设置路径后
会自动生成如下方法 |
|
|
|
books_path |
/books
注 |
book_path(id) |
/books/:id |
new_book_path |
/books/new |
edit_book_path(id) |
/books/:id/edit |
|
|
|
|
|
|
|
可选
弹出确认窗口
|
data-confirm
data: {confirm: ' your message'} |
|
|
|
|
|
|
|
|
|
|
可选
指定HTTP方法 |
method: delete
放在option里 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
执行前呼出 |
方法定义 |
before_action method, only: action |
参数含义 |
method 方法的标签
例 :sample |
only: 需要设置预处理的函数标签的数组
例 [:sample1, :sample2,
...] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
输出 |
定义 |
render (partial:) 'template', 参数:值 |
组块模板(partial template) |
命名规则_sample.htm.erb
开头带_ |
参数含义 |
(partial:) 'template' 开头可省略,指定组块模板
参数:值 传入组块模板里的参数和附加的值 |
|
|
|
|
可选 |
status |
应答时使用的HTTP状态
为标签
:unprocessable_entity |
location |
表示资源位置的url |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
生成表格 |
定义 |
form_for(model) do |f|
...
end |
参数含义 |
model 模块对象(数据库单元对象)
... 表格本体 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f.label |
|
f.text_field |
f.text_field :property |
f.date_select |
|
f.check_box |
|
f.submit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
获取post数据 |
param.require(:ModelName).permit(:test1,
test2, ...)
:ModelName
模块的名字标签
:test1, test2, ... 数据的名字标签 |
数据保存 |
模块对象.save
例: book.save
返回 true/false |
重定向 |
定义 |
redirect_to url [, option]
例:
redirect_to @book, notice: 'Book was successfully created.'
|
参数含义 |
|
option |
notice: |
指定重定向时传递的信息
可想本地变量一样读取 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数据更新 |
定义 |
模块对象.update(attrs)
返回值: true/false |
参数含义 |
模块对象:模块类的实例
attrs: [property-name: value,
...]
|
注意 |
使用前必须先选定
模块类.find |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数据搜索与
选定 |
定义 |
ModelClass.find(params[:id])
ModelClass 模型类
params[...] 获取经由URL获得的量
params[:id]获得页面索引号 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
返回状态
P97 |
head status
status: 响应的结果
例 head :no_content |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
模块
|
model
|
位置 |
模块类 |
/app/models/samples.rb
|
迁移脚本 |
/db/migrate/20161013021716_create_samples.rb |
测试数据 |
/test/fixtures/samples.yml |
测试脚本 |
/test/models/samples_test.rb |
|
|
|
|
|
数据库配置文件
database.yml |
YAML格式(YAML Ain't Markup Language)
位置 |
config/database.yml |
值设定 |
参数名: 值
例子:
production: 1 |
|
production:
a: 1
b: 2 |
|
production: &test
a: 1
b: 2
c: 3 |
设定别称 |
<<: *test |
呼出整个部分 |
|
|
|
三个模式 |
默认设置,
其他地方
会参照 |
default: &defalut
adapter:sqlite3
pool: 5
timeout: 5000 |
开发模式 |
development:
<<: *default
database: db/development.sqlite3 |
测试模式 |
test:
<<: *default
database: db/development.sqlite3 |
产品模式 |
production:
<<: *default
database: db/development.sqlite3 |
|
|
|
可设定的值 |
不同数据库有不同的可能
adapter |
数据库种类
sqlite3, mysql2, postgresql... |
database |
数据库名
SOLite则为数据库路径 |
host |
主机名/IP地址 |
port |
接口号 |
pool |
预备连接池 |
timeout |
连接限制时间(单位毫秒) |
encoding |
使用的文字编码 |
username |
用户名 |
password |
密码 |
socket |
套接字(/tmp/mysql.sock)等 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
生成数据库 |
rails db:migrate
不需要任何参数 |
读取测试数据 |
rails db:fixtures:load FIXTURES=samples |
|
|
|
|
|
|
|
|
|
|
|
|
数据库相关方法
|
|
搜索 |
定义 |
ModelClass.find(params[:id])
ModelClass 模型类
params[...] 获取经由URL获得的量
params[:id]获得页面索引号 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
数据保存 |
模块对象.save
例: book.save
返回 true/false |
数据更新 |
|
|
|
|
|
|
|
|
|
|
|
|
|
配置文件 |
/config/ |
总览 |
/config |
|
|
|
|
application.rb |
|
所有环境的共同设定 |
|
routes.rb |
|
路径设定 |
|
/enviroment |
|
每个环境的设定 |
|
|
development.rb |
开发者模式 |
|
|
test.rb |
测试模式 |
|
|
production.rb |
产品模式 |
|
/initializers |
|
初始化 |
|
|
assets.rb |
编译对象声明 |
|
|
backtrace_silencers.rb |
|
|
|
cookies_serializer.rb |
签名,密码的序列号 |
|
|
filter_parameter_logging.rb |
从日志除外的参数信息 |
|
|
inflections.rb |
单复数规则 |
|
|
mime_types.rb |
可使用的内容类型 |
|
|
new_framework_defaults.rb |
默认值被改变的参数 |
|
|
session_store.rb |
|
|
/locales |
|
为了国际化的资源文件 |
|
自己添加的 |
|
|
|
|
|
|
|
|
|
|
|
设定方法 |
config.参数名 = 值 |
主要可设定参量 |
基本 |
cache_class |
应用类要不要缓存
默认
dev false
test true
prod true |
|
cache_store |
缓存保存位置
:memory_store
:file_store
:mem_cache_store
等 |
|
colorize_logging |
是否对日志上色
默认 true |
|
autoload_paths |
|
|
asset_host |
|
|
log_level |
|
|
logger |
|
|
log_tags |
|
|
time_zone |
|
|
i18n.default_locale |
|
|
|
Active Record |
active_record.logger |
|
|
active_record.schema_format |
|
|
activer_record.timestamped_migrations |
|
|
|
|
Action Controller |
action_controller.logger |
|
|
action_controller.perform_caching |
|
|
session_store |
|
|
|
|
Action View |
action_view.default_form_builder |
|
|
action_view.logger |
|
|
action_view.field_error_proc |
|
|
|
读取 |
YMAL.load(
File.read("#{Rails.root}/config/my_config/yml")
)[Rails.env]
含义:
读取文件,并且把当前环境[Rails.env]下的信息取出来
|
|
|
|
|
|
|
|
|
模板文件位置 |
/app/views/控制器名/
自己新建,方法名.html.erb |
插入代码 |
插入代码 |
《% ... %》 |
打印值 |
《%= ... %》 |
|
注释 |
普通注释 |
《%# ... %》 |
内部注释
一行 |
# |
跨行注释 |
《% if false %》 ... 《% end %》 |
跨行注释
=在行头 |
《%
=begin
...
=end
%》
|
html标准注释
对客户端可见 |
《!-- ... --》 |
|
url匹配模式 |
/books/:id(.:format)
:开头的是占位符
:id id号
:format 格式,默认html
带()的可省略(即有默认值)
|
任务注释 |
格式 |
# TODO: ...
# FIXME: ...
# OPTIMIZE ... |
查看 |
rails notes |
个别查看 |
rails notes:todo
rails notes:fixme
rails notes:optimize |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
对ruby自身的扩张 |
位置 /config/initializers/
内部自己随意放,我个人
/config/initializers/extention/xxxx.rb |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|