尝试覆盖Active Admin资源上的创建操作时,我看到一些奇怪的行为。我推翻这一行动的原因是我想先稍微改变请求参数。
ActiveAdmin.register User do
controller do
def create
format_params
create!
end
def update
format_params
update!
end
def format_params
params[:user] = ...
end
end
end
我所看到的是 a 创建操作被调用两次 - 但仅在第二次是我的被覆盖版本。到那时,新记录已经创建,虽然不正确,第二次调用( 被覆盖的版本)看起来像一个重复的资源。
如果我清空自定义的#create操作并只留下一个日志记录语句,我可以看到一条记录在被调用之前仍然被创建,几乎就像有某种before_回调一样,尽管我不能在代码中找到任何这样的东西。
更奇怪 - 在重写的#update方法上一切正常 - 参数被改变了,原来的#update!方法被正确委派。
我在Rails 3.2.13上使用Active Admin 0.5.1
干杯