Ruby学习笔记

数据库潜规则

▪  数据库表名:复数,下划线分隔单词(例如 book_clubs) 
 ▪  模型类名:单数,每个单词的首字母大写(例如 BookClub) 


▪  外键:使用 singularized_table_name_id 形式命名,例如 item_id,order_id。创建模型关联后,Active Record 会查找这个字段;
▪  主键:默认情况下,Active Record 使用整数字段 id 作为表的主键。使用 Active Record 迁移创建数据 库表时,会自动创建这个字段;
▪ created_at:创建记录时,自动设为当前的日期和时间;
▪ updated_at:更新记录时,自动设为当前的日期和时间;
▪ lock_version:在模型中添加乐观锁; _
▪ type:让模型使用单表继承;
▪ (association_name)_type:存储多态关联的类型;
▪ (table_name)_count:缓存所关联对象的数量。比如说,一个 Article 有多个 Comment,那么 com- ments_count 列存储各篇文章现有的评论数量; 


其他命名潜规则

▪ 类名、模块名和常量应该用大写字母开头
▪ @ 后面不可以直接跟 数字

Grape api response body :present

[https://ruby-china.org/topics/21214]

{
	code: 1000,
	msg: "OK",
	data: {
		// normal data goes here if exists
	}
}

present :items, Book.all, with: Entities::Book

attr_accessor

是创建变量的可读可写属性

raise LogicError

throw new LogicError

camelize

'active_record'.camelize # => "ActiveRecord"

rescue 异常捕获

[https://ruby-china.org/topics/9351]

感叹号

[https://github.com/quanzhanying/fullstack-course/wiki/%E5%85%B3%E4%BA%8E-Ruby-%E6%96%B9%E6%B3%95%E5%90%8D%E5%90%8E%E7%9A%84%E9%97%AE%E5%8F%B7%E5%92%8C%E6%84%9F%E5%8F%B9%E5%8F%B7] 方法名后面加感叹号是 Ruby 的编码风格规范,用来表示该方法会去修改对象本身,Ruby 会把带有感叹号的方法称为危险的方法,因为程序中可能有其他地方会引用这个对象。但是并不会强制该方法一定要修改对象本身。

find_by/find_by! find_by:假设不存在返回nil_ find_by!:假设不存在抛出异常_

语法

[https://www.jianshu.com/p/e0374c038dda]

Rails MVC

(Ruby on Rails教程 中文版)

路由

ActionDispatch::Routing::Mapper::HttpHelpers 中定义了在route里可以设置的5种HTTP via get 'bacon', to: 'food#bacon’ post 'bacon', to: 'food#bacon’ patch 'bacon', to: 'food#bacon’ put 'bacon', to: 'food#bacon’ delete 'broccoli', to: 'food#broccoli’

最终调用的还是match方法 match 'path' => 'controller#action', via: patch match 'path', to: 'controller#action', via: :post match 'path', 'otherpath', on: :member, via: :together

缓存

来源

  1. ActiveRecord层缓存 在rails的model层中可以手动缓存某些业务结果到对应的缓存存储系统里。
Rails.cache.fetch(key, expires_in: 1.hour) do 
....
end
object#try 对潜在的 Rails 中的 nil 调用方法-来源
nil.send(:downcase)
NoMethodError: undefined method `downcase' for nil:NilClass
nil.try(:downcase)
=> nil

转载于:https://my.oschina.net/u/2539883/blog/2877351

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值