Rails5 Model Document
创建: 2017/06/09
更新: 2017/06/21
待完成事项: TODO
模型(model) | |||||||||||||||||||||||||||||||||||||||||||||||||||
生成 | rails generate model name field:type [...] [options]
P48 app 例子: rails g model questionnaire veryAgree:boolean agree:boolean disagree:boolean veryDisagree:boolean |
||||||||||||||||||||||||||||||||||||||||||||||||||
迁移文件的生成 |
和模型一起生成 rails generate model name field:type [...] 例: rails generate migration AddBirthToAuthors birth: date 生成的文件名 20180216002328_add_birth_to_authrs.rb 文件内容 #20180216002328_add_birth_to_authrs.rb class AddBirthToAuthors < ActiveRecord:: Migration[5.0] |
||||||||||||||||||||||||||||||||||||||||||||||||||
自带属性 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
rails命令行 | 命令行测试模块(model)
|
||||||||||||||||||||||||||||||||||||||||||||||||||
查看履历 | rails db:migrate:status ------------------------------------------------------------------------------
|
||||||||||||||||||||||||||||||||||||||||||||||||||
生成数据库 | rake db:create:all | ||||||||||||||||||||||||||||||||||||||||||||||||||
设定数据库 | rails db:migrate
|
||||||||||||||||||||||||||||||||||||||||||||||||||
生成并读取数据库 | rails db:setup 相当于 rails db:create:all rails db:migrate rails db:seed 或者 rails db:fixtures:load |
||||||||||||||||||||||||||||||||||||||||||||||||||
schema来构筑数据库 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||
seed | 初始数据来初始化(也可以用fixture)
|
||||||||||||||||||||||||||||||||||||||||||||||||||
fixture | 测试数据来初始化(也可以用seed)
|
||||||||||||||||||||||||||||||||||||||||||||||||||
读取 | rails db:fixtures:load (FIXTURES=samples) |
||||||||||||||||||||||||||||||||||||||||||||||||||
初始化 | rails db:reset (DISABLE_DATABASE_ENVIROMENT_CHECK=1) 括号内内容是删除production模式的数据库 windows下development模式好像也要 |
||||||||||||||||||||||||||||||||||||||||||||||||||
删除 | rails db:drop:all (DISABLE_DATABASE_ENVIROMENT_CHECK=1) 括号内内容是删除production模式的数据库 windows下development模式好像也要 |
||||||||||||||||||||||||||||||||||||||||||||||||||
服务器客户端 |
|
基本的数据检索 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
主键(key)搜索 | Class.find(keys) 返回主键所对应的数据(一对一)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
指定键搜索 | Class.find_by(key, value [,...]) 搜索指定的键对应的值 可以指定多个键来追加限制 返回找到的第一个 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
搜索不存在则创建 | Class.find_or_create_by(同上) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
复杂条件下的数据检索 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
设定基本条件式 |
Class.where(exp) ● joins/includes等关联搜索的参数写法 where(关联表格名: {关联处的搜索条件} ) cars = cars.includes(:equipment_spec).where(equipment_specs: { power_window: true }) 返回找到的全部(非数组?)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
用占位符生成条件式 |
Class.where(exp [, value, ...]) 不等于是not, 只用于不是nil http://railsdoc.com/references/where
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
where的否定 | Class.where.not(...) 参数和where一样 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
or | Class.where(...).or(Class.where(...))
ModelTest.where('ap <= ?', |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
排序 | Class.where(...).order(sort)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
重排 |
Class.where(...).order(sort).reorder(sort) 写法和order一样 作用是覆盖前面的order 如果只是想清空前面的order,指定nil |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
指定读取的列 |
Class.where(...).select(cols) 默认获取所有的列, 用这个方法可以指定具体要获得的列
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
去除重复 | Class.where(...).distinct(flag) Class.select(...).distinct(flag)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取特定范围 | limit/offset 和order一起用才有现实意义 limit(rows) offset(off)
ModelTest.where('hp >= ? AND mp >= ? AND ad >= ?', 1000, |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取开头/结尾数据 | Class.first Class.last (也可以用limit(0)) 不能惰性读取,必须放在方法链最后 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
分组 | Class.where(...).group(key) 可以指定多个 :a, :b, :c, ... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
进一步提取信息 |
Class. group (key).have(exp)
exp写法参照p206 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
select中使用SQL函数 | 例: Book.select('AVG(sample) AS avg_sample') 用AS设定名称 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
去除条件 |
Class.where(...).select(...)unscope(...).unscope(...)
注意:unscoped是删除之前的所以条件
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回空对象 | Class.none Class.where(...)....none 注意: null是空,Class.none这类是空对象(NullObject),可以呼出each等而不出错 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取数据的其他方法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
以数组形式取出列 | Class.where(...).pluck(column [,...]) 例:ModelTest.all.pluck(:israre, :mp) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
确认指定的数据是否存在 | Class.where(...).exists? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
自定义模型搜索方法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
命名空间 (Named Scope) |
scope :name, ->{ ... } scope :rare, -> { where('israre = :israre', israre: true) } 位置: /app/models/... 调用: sample = Class.where(...).scope-name |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
设置默认方法 | default_scope { ... } 位置: /app/models/... 例: default_scope { order_with_hp } scope :order_with_hp, ->{ order(:hp) } |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
计算结果类 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
获取结果的行数(数量) | Class.where(...).count Class.where(...).size Class.where(...).length 推荐用size,基本没有错 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
计算类 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
直接使用SQL命令 | 一般都用query method, 尽量不要直接用SQL命令 find_by_sql(sql)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
记录(record)的登陆,更新,删除 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
基础 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
新建 | Class.new/build Class.new(...) Class.build(...) 哈希表形式指定 {:hp => 54321, :mp => 12345, israre: false} @new = ModelTest.new({:hp => 54321, :mp => 12345, israre: false}) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
新建+保存 | Class.create | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
登陆(保存) | Class#save 返回true/false 注: @sample.save!失败返回例外(用于transaction) 例: @sample.save |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
更新 | @sample.update(...) 返回true/false 哈希表形式指定 {:hp => 54321, :mp => 12345, israre: false} 用于已经存在的记录(record) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
删除 | @sample.delete
delete(keys) 单纯删除(直接执行SQL, 不经过Active Recode) 例子: sample.delete |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
进一步的操作 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
全部更新 | Class.where(...).update_all(updates) 返回改动的行数 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
删除 |
例子: sample.delete |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
全部删除 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
transaction 事务 |
def transaction Class.transaction do .... raise ... .... raise ... ... end rescue => e ... end 用发出异常来终止transaction 经常用@sample.save! 失败返回例外
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
同时运行的管理 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
定义枚举的的域 | 用与设置数字与符号的对应
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
其他更新类方法 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
P245 | 暂略 # TODO: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
实现验证功能(validation) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ActiveModel可用的validation |
通用参数: 注: 可以直接设置成全部适用, 如 validates :id, allow_blank: true, length: { is: 10 }, uniqueness: true 或对特地验证适用, 如 validates :id, length: {allow_blank: true, is: 10}, uniqueness: true
with_options: with_options(on: :create, if: 'true') do |oc| ActiveModel可用的validation:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
声明validate |
validates field [, ...] name: params [, ...] 参数含义:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
validate触发时机 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
errors |
errors (ActiveModel::Errors类) 前提: 设定了validates, 不然不会有任何错误
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
自定义validator1 |
直接呼出方法 validates :method_name [, ...] |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
自定义validator2 |
设置 # config/application.rb # ... 创建文件 # app/models/validators/sample_validator.rb 使用 # sample.rb |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
定义不与数据库关联的model | # TODO: 需要的时候完成此项 2019/02/21 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
用关联(association)处理复杂表格 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
命名规则 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
参照的设置 | belongs_to assoc_id [,opt] 例: belongs_to :modeltest1 一对一关系
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一对多 | has_many assoc_id [,opt]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
一对一 | has_one assoc_id [,opt]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
多对多 m:n |
has_and_belongs_to_many assoc_id [, opt]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
多对多2 m:n |
a---b---c这种情况下,直接关联a---c has_many assoc_id, through: middle_id [, opt] 例 b定义处 belongs_to :a belongs_to :c a定义处 has_many :b has_many :c through: :b c定义处 has_many :b has_many :a through: :b |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
由关联自动定义的方法 | p282~283 # TODO: 略 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
关联可用的opt |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
与相关model结合 |
joins(exp) 前提是已经建立association ● 参数是关联名(如has_one则为单数) ● 搜索时候套上的symbol是表格名 cars = cars.includes(:equipment_spec).where(equipment_specs: request)
用join也能达到association的效果 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
与相关model结合 (左外部结合) Rails 5.0 |
left_outer_joins(exp) alias: left_joins(exp) 结合是左外部结合 LEFT OUTER JOIN 写法和上面一样, 但不能用C写法 ● 参数是关联名(如has_one则为单数) ● 搜索时候套上的symbol是表格名 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
和相关model一起获取 |
includes(exp) 结合是左外部结合 LEFT OUTER JOIN 写法一样,但不能用C写法 ● 参数是关联名(如has_one则为单数) ● 搜索时候套上的symbol是表格名 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
回调(call back) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
用例:注册时候每天的空白自动生成 注册或者更新时候自动发邮件 注册更新时保存为履历等 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
回调函数 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
主要方法 |
各时间点所对应函数
回调函数
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
迁移文件 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
位置 | app/db/migrate/ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
生成migration文件 | 本页最上面找 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
构造 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
逻辑方法 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
主要方法 |
tname: table name frname: 外部table name fname: field name type: field的数据类型 opt: field的option i_opt: index option t_opt:table option fr_opt: foreign key option
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
create_table, change_table 代码块内可用的方法 |
create_table,change_table代码块内可用的方法 例: change_table tname do |t| ● 可用的方法
● 可用的列定义 t.数据类型 :列名, opt 可利用的数据类型和对应关系
选项opt
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
模型处改变迁移文件数据类型 | attribute(name, type [,default: value]) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
迁移文件的生成 | 和模型一起生成 rails generate model name field:type [...] [options] 单独生成 rails generate migration name [field:type ...] [options] |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
删除或者增加列 | 生成迁移文件时候命名 rails g model AddXxxxTo表格名
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
升级与回滚 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
schema来构筑数据库 |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
数据库初始化 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
迁移和初始化一起 | rails db:setup 相当于 rails db:create:all rails db:migrate rails db:seed 或者 rails db:fixtures:load |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
seed file | 初始数据来初始化(也可以用fixture)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fixture | 测试数据来初始化(也可以用seed)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Data/Time相关的有用的方法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
yesterday | 昨天 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tomorrow | 明天 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
prev_xxxx | 前年/月/周(year,month,week) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
next_xxxx | 下年/月/周(year,month,week) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
beginning_of_xxxx | 年/季/月/周的开始一天(year, quarter, month, day) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
end_of_xxxx | 年/季/月/周的最后一条(year, quarter, month, day) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n.xxx.ago Numeric |
n个年/月/日/时/分/秒以前 years, months, days, hours, minutes, seconds 也可以用单数 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
n.xxx.from_now Numeric |
n个年/月/日/时/分/秒以后 years, months, days, hours, minutes, seconds 也可以用单数 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rails5 Model Document的更多相关文章
- Rails5 View Document
更新: 2017/06/11 更新: 2017/06/15 加粗,submit必须放在form_for内部 更新: 2017/06/23 对待完成的追加# TODO: ...
- Rails5 Route Document
创建: 2017/06/29 完成: 2017/06/29 更新: 2017/06/30 最开头的有效路径展示补充网页版 更新: 2017/07/21 修正错别字 更新: 2017/09/02 增加m ...
- Rails5 Controller Document
更新: 2017/06/28 大致完成全部 更新: 2017/06/29 补充module文件命名规则 更新: 2017/07/09 补充session的设置 更新: 2018/03/06 修正ren ...
- 初探React,将我们的View标签化
前言 我之前喜欢玩一款游戏:全民飞机大战,而且有点痴迷其中,如果你想站在游戏的第一阶梯,便需要不断的练技术练装备,但是腾讯的游戏一般而言是有点恶心的,他会不断的出新飞机.新装备.新宠物,所以,很多时候 ...
- JSON&XML总结
JSON&XML: JSON----- //英译 Serialization:序列化 perform:执行 segue:继续 IOS5后 NSJSONSerialization解析 解析JSO ...
- Provider Hosted App中使用JOM问题
在使用SharePoint 2013的JOM时,出现以下问题: ReferenceError: SP is not defined 经反复试验和搜索,得出以下两种方式: 一.直接引用JS文件,引用顺序 ...
- 资源list:Github上关于大数据的开源项目、论文等合集
Awesome Big Data A curated list of awesome big data frameworks, resources and other awesomeness. Ins ...
- SpringMVC自定义视图 Excel视图和PDF视图
一.自定义视图-Excel视图 1.Maven依赖 引入POI <dependency> <groupId>org.apache.poi</groupId> < ...
- js正则,电话,邮箱
1. <script type="text/javascript"> var str="Is this all th05777-89856825ere is5 ...
随机推荐
- UVA 253 Cube painting(枚举 模拟)
题意: 按如图的顺序给定2个骰子的颜色(只有r.b.g三种颜色) 问2个骰子是否一模一样 如 可表示为“rbgggr” 和 “rggbgr”, 第二个就是绕着Z轴顺时针旋转90度与第一个相同的骰子. ...
- 定义一个复数类Complex
#include<iostream> #include<math.h> using namespace std; class Complex{ public: Complex( ...
- 得到JavaWeb项目在Tomcat中的运行路径
获得绝对路径 ··· File file= new File(path); System.out.println(file.getAbsolutePath()); ··· 获得Tomcat路径 这是一 ...
- swagger & api & swagger ui
swagger & api swagger ui # run server $ swagger project start api-app # call api $ curl http://1 ...
- MyBatis实体属性与表的字段不对应的解决方案
1.通过在查询的SQL语句中定义字段名的别名,让字段名的别名和实体类的属性名一致,这样就可以表的字段名和实体类的属性名一一对应上,这种方式是通过在SQL语句中定义别名来解决字段名和属性名的映射关系的. ...
- Why It is so hard to explain or show some thing
Why it is hard to explain something or learn something? For example, when I first know the hadoop, I ...
- 在Windows上安装Nexus
在Windows上安装Nexus 学习了:https://www.cnblogs.com/yucongblog/p/6696736.html 下载地址:https://sonatype-downloa ...
- UVA 567 Risk【floyd】
题目链接: option=com_onlinejudge&Itemid=8&page=show_problem&problem=508">https://uva ...
- System.AccessViolationException”类型的未经处理的异常在 System.Data.dll 中发生。其它信息:尝试读取或写入受保护的内存。这通常指示其它内存已损坏。
错误背景: 操作系统:编程环境:VS2013. 语言:VB.net: 数据库:SQLserver2008 做数据库连接时.发生的错误: 错误提示为: 说明:用VB.net连接SQLServer数据 ...
- react 执行 yarn build 页面无法显示
资源文件路径问题 如果你使用create-react-app创建项目,执行命令 yarn build 后,直接以静态方式打开build文件夹内的index.html,会看到页面显示出现问题,打开con ...