這篇文章主要介紹了Ruby優化繼承類實例,本文直接給出一個優化實例及實現代碼,需要的朋友可以參考下
在Rails的原則裡有簡化Controller,豐富Model的說法。下面將用一個示例展示一個簡單的繼承優化。特別是你的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