▪ 數據庫表名:複數,下劃線分隔單詞(例如 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