我在我的模型上使用acts_as_list。我在该模型上有一个位置列,如果位置超过我的上限,我不会将模型对象保存到数据库中限制。(我尝试使用rails验证位置,但显然似乎首先运行rails验证然后acts_as_list执行更新(增加)位置并将其保存在db中的工作。
acts_as_list scope: :widgets, {0 < :position <= 2}
是否可以这样
我查看了他们的文档,但无法找到任何内容。
我如何在Rails中完成。
任何帮助将不胜感激。如果需要,请随时向我询问更多信息。
答案 0 :(得分:0)
我认为你需要做这样的事情
acts_as_list scope: :widgets, if: 'position <= 2'
答案 1 :(得分:0)
acts_as_list
本身不支持此功能。您可以尝试添加基于匹配范围不超过x
条记录的验证吗?
validates :maximum_records
private
def maximum_records
if where([[scope conditions]]).count > something
errors.add :base, 'too many records'
end
end