例如,我有这个数组:
tags_array=['<code>','<span>','<div>', '<label>','<a>', '<br>', '<p>' '<b>','<i>', '<del>', '<strike>', '<u>', '<img>', '<video>', '<audio>', '<iframe>', '<object>', '<embed>', '<param>', '<blockquote>', '<mark>', '<cite>', '<small>', '<ul>', '<ol>', '<li>', '<hr>', '<dl>', '<dt>', '<dd>', '<sup>', '<sub>', '<big>', '<pre>', '<code>', '<figure>', '<figcaption>', '<strong>', '<em>', '<table>', '<tr>', '<td>', '<th>', '<tbody>', '<thead>', '<tfoot>', '<h1>', '<h2>', '<h3>', '<h4>', '<h5>','<h6>']
我不想在我使用它的每个模型方法中定义它,它似乎不是非常聪明的复制粘贴。
当然,我不想要单独的DB行。
如何定义一次,因此每个模型方法都可以看到它,例如实例initialize
方法。
像
class MyModel<ActiveRecord::Base
#...
@tags_array=['','',...]
def onemethod
@tags_array.split!
#...
end
def twomethod
@tags_array.capitalize!
#...
end
end
答案 0 :(得分:1)
您可以将其定义为模块并将其混合。
module TagsArray
tags_array=['','',...]
def self.onemethod
tags_array.split
#...
end
def self.twomethod
tags_array.capitalize
#...
end
end
然后你可以将它混合到你的模型中。
class MyModel<ActiveRecord::Base
include TagsArray
end
希望这会有所帮助。
你也可以放弃!从split和capitalize结束,除非你想在每次调用方法时永久改变tags_array。