gpt4 book ai didi

ruby-on-rails - Rails中非规范化的抽象?

转载 作者:行者123 更新时间:2023-12-03 12:18:17 25 4
gpt4 key购买 nike

因此,我经常发现自己正在编写如下代码:

song.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


或者其他的东西。是否存在?

最佳答案

因此,...您需要一个名为“ cache_in_database”的回调,该回调具有一个属性和一个块,并将该属性设置为每次保存之前该块的返回值。那正确吗?

我还没有听说过这样的事情,但这将是一个易于编写的插件。只需编写一个带有属性和块参数的cache_in_database类方法,创建一个进行赋值的proc或方法,然后将其添加到before_save链中即可。我的问题是,您是否经常这样做,以至于每次都节省一行代码左右就值得增加一点魔力。

关于ruby-on-rails - Rails中非规范化的抽象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1474649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com