Ruby優(yōu)化繼承類實(shí)例
在Rails的原則里有簡(jiǎn)化Controller,豐富Model的說法。下面將用一個(gè)示例展示一個(gè)簡(jiǎn)單的繼承優(yōu)化。特別是你的method里有一個(gè)寫變化的self變量的時(shí)候。
假設(shè)我們有如下的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
我們可以通過繼承的使用簡(jiǎn)化代碼如下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
那么我們也可以在測(cè)試中這么使用:
it 'should create an activation code' do
admin = Factory(:administrator)
admin.make_activation_code
admin.activation_code.should_not be_empty
end
相關(guān)文章
使用Ruby on Rails快速開發(fā)web應(yīng)用的教程實(shí)例
這篇文章主要介紹了使用Ruby on Rails快速開發(fā)web應(yīng)用的教程實(shí)例,本文來自于IBM官方技術(shù)文檔,需要的朋友可以參考下2015-04-04
Ruby的基本語(yǔ)法學(xué)習(xí)總結(jié)
這篇文章主要介紹了Ruby的基本語(yǔ)法學(xué)習(xí)總結(jié),本文講解了Ruby中的關(guān)鍵字、注釋、數(shù)據(jù)類型、賦值和條件運(yùn)算、輸出和輸入、條件判斷語(yǔ)句、循環(huán)語(yǔ)句等內(nèi)容,需要的朋友可以參考下2014-11-11
在Ruby程序中連接數(shù)據(jù)庫(kù)的詳細(xì)教程
這篇文章主要介紹了在Ruby程序中連接數(shù)據(jù)庫(kù)的詳細(xì)教程,包括介紹數(shù)據(jù)庫(kù)支持Ruby的接口等,是學(xué)習(xí)Ruby on Rails的基礎(chǔ),需要的朋友可以參考下2015-04-04
Ubuntu系統(tǒng)安裝Ruby語(yǔ)言的三種方法
這篇文章主要介紹了Ubuntu系統(tǒng)安裝Ruby語(yǔ)言的三種方法,本文講解了使用apt-get安裝、使用brightbox ppa倉(cāng)庫(kù)安裝、使用RVM安裝3種方法,需要的朋友可以參考下2015-01-01
Ruby設(shè)計(jì)模式編程之適配器模式實(shí)戰(zhàn)攻略
這篇文章主要介紹了Ruby設(shè)計(jì)模式編程之適配器模式實(shí)戰(zhàn)攻略,適配器模式中主張將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口,需要的朋友可以參考下2016-03-03
GitHub倡導(dǎo)的Ruby代碼編寫風(fēng)格總結(jié)
GitHub網(wǎng)站服務(wù)器端主要就是使用的Ruby作為編程語(yǔ)言,因而GitHub所提倡采用的Ruby書寫規(guī)范也就顯得更有些說服力XD 下面我們就整理除了這份GitHub倡導(dǎo)的Ruby代碼編寫風(fēng)格總結(jié),需要的朋友可以參考下2016-05-05
Ruby中嵌套對(duì)象轉(zhuǎn)換成json的方法
這篇文章主要介紹了Ruby中嵌套對(duì)象轉(zhuǎn)換成json的方法,同時(shí)介紹了普通對(duì)象to_json的方法,需要的朋友可以參考下2014-06-06

