覆盖Ruby on Rails中的保存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了覆盖Ruby on Rails中的保存相关的知识,希望对你有一定的参考价值。
您好我想要覆盖ruby中的save方法但是这样做时我在保存带有一些更改的对象时会出现以下错误
User.name = "alex"
User.save
ArgumentError:参数数量错误(1表示0)
我的代码如下
class ActiveRecord::Base
def save()
p "in My save
"
Multidb.use(:default) do
p "calling super
"
super()
end
p "saved
"
end
end
答案
我认为覆盖公共ActiveRecord
API的这种重要方法是一个可怕的想法。
但是如果你真的想要覆盖save
那么你应该允许你的save
方法接收与original save
method相同的参数并将这些参数传递给super
。
def save(*args)
# ...
Multidb.use(:default) do
super(*args)
end
# ...
end
以上是关于覆盖Ruby on Rails中的保存的主要内容,如果未能解决你的问题,请参考以下文章
Ruby on Rails:before_save 字段为小写