我经常发现自己在编写这样的代码:
歌曲.rb:
:before_save :cache_sortable_name
private
def cache_sortable_name
return unless name_changed?
self.sortable_name = name.sub(/^(the|a|an)\s+/i, '')
end
即,sortable_name
为了方便起见,我有一个包含非规范化数据的数据库列,并且我想在模型名称更改时填充它。
我希望能够将此逻辑封装在这样的构造中
:cache_in_database :sortable_name do
name.sub(/^(the|a|an)\s+/i, '')
end
或者其他的东西。这存在吗?