配置文件位置 |
/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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|