▪ 数据库表名:复数,下划线分隔单词(例如 book_clubs) ▪ 模型类名:单数,每一个单词的首字母大写(例如 BookClub) git
▪ 外键:使用 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 列存储各篇文章现有的评论数量;
github
▪ 类名、模块名和常量应该用大写字母开头
▪ @ 后面不能够直接跟 数字数据库
[https://ruby-china.org/topics/21214]api
{ code: 1000, msg: "OK", data: { // normal data goes here if exists } }
present :items, Book.all, with: Entities::Book缓存
是建立变量的可读可写属性ruby
throw new LogicErrorapp
'active_record'.camelize # => "ActiveRecord"post
[https://ruby-china.org/topics/9351]fetch
[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]
(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
Rails.cache.fetch(key, expires_in: 1.hour) do .... end
nil.send(:downcase) NoMethodError: undefined method `downcase' for nil:NilClass nil.try(:downcase) => nil