Ruby優(yōu)化繼承類實例
在Rails的原則里有簡化Controller,豐富Model的說法。下面將用一個示例展示一個簡單的繼承優(yōu)化。特別是你的method里有一個寫變化的self變量的時候。
假設我們有如下的Model
class SubjectMatterExpert < User
include HashCodeCreatorModule
def make_activation_code
self.deleted_at = nil
self.activation_code ||= make_hash_code
end
end
class Administrator < User
include HashCodeCreatorModule
def make_activation_code
self.deleted_at = nil
self.activation_code ||= make_hash_code
end
end
我們可以通過繼承的使用簡化代碼如下SubjectMatterExpert Administrator
class SubjectMatterExpert < User
end
class Administrator < User
end
class User
include HashCodeCreatorModule
def make_activation_code
self.deleted_at = nil
self.activation_code ||= make_hash_code
end
那么我們也可以在測試中這么使用:
it 'should create an activation code' do
admin = Factory(:administrator)
admin.make_activation_code
admin.activation_code.should_not be_empty
end
相關文章
艱難完成 nginx + puma 部署 rails 4的詳細記錄
用 Ruby on Rails 寫了個半成品 Limlog 博客系統(tǒng)作為 Rails 練習,花了很長時間想解決部署問題,終于才剛解決。。。2014-06-06Ruby和Ruby on Rails中解析JSON格式數(shù)據(jù)的實例教程
這篇文章主要介紹了Ruby和Ruby on Rails中解析JSON格式數(shù)據(jù)的實例教程,文中介紹到的Ruby on Rails中的JSON解析工具包json_pure使用起來十分方便,需要的朋友可以參考下2016-04-04在阿里云 (aliyun) 服務器上搭建Ruby On Rails環(huán)境
最近總是在配置阿里云的服務器,遇到不少問題,現(xiàn)小結一下,供大家參考~~2014-06-06Ruby on rails安裝后去掉DL is deprecated,please use Fiddle警告信息的方法【
這篇文章主要介紹了Ruby on rails安裝后去掉DL is deprecated,please use Fiddle警告信息的方法,通過針對Ruby on rails安裝文件中的警告部分源碼進行注釋來達到消除警告的目的,需要的朋友可以參考下2017-02-02Ruby里4種比較函數(shù)(equal?, eql?, ==, ===)詳解
本文給大家詳細介紹了Ruby中的4種比較函數(shù)(equal?, eql?, ==, ===)的用法,并用具體示例進行了講解,希望對大家學習ruby能夠有所幫助。2016-02-02