位置

时间:2017-05-27 05:21:28

标签: ruby-on-rails-5 acts-as-list

我在我的模型上使用acts_as_list。我在该模型上有一个位置列,如果位置超过我的上限,我不会将模型对象保存到数据库中限制。(我尝试使用rails验证位置,但显然似乎首先运行rails验证然后acts_as_list执行更新(增加)位置并将其保存在db中的工作。

acts_as_list scope: :widgets, {0 < :position <= 2}是否可以这样 我查看了他们的文档,但无法找到任何内容。

我如何在Rails中完成。

任何帮助将不胜感激。如果需要,请随时向我询问更多信息。

2 个答案:

答案 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