【发布时间】:2012-02-13 22:05:29
【问题描述】:
在我的代码中,我有一个包含许多子类别的类别模型,并且子类别属于一个类别。
子类别有一个 :position 字段来跟踪它应该在类别下排列的位置。这是我的子类别模型代码。
class Subcategory < ActiveRecord::Base
belongs_to :category
has_many :products
validates_uniqueness_of :position
scope :position, order("position asc")
end
如您所见,它不允许重复位置。当它检测到子类别位置已存在时,我希望它提示用户说“该位置已被占用,但仍可以插入。您要继续吗?”是 |没有。
如果是,那么我需要它为所有当前类别子类别添加 +1:位置(在“有问题的子类别”位置之后。因此,如果类别 1 具有子类别 1、2 和 3,当有人尝试添加位置为 2 的新子类别,我需要将当前的 2 和 3 删除到 3 和 4 并将新的子类别插入位置 2。
如果否,那么我只想让它返回编辑屏幕。
我不确定如何准确编码,我假设如果保存失败,检查 :position 冲突将在子类别控制器中。
所以我的两个问题是:检查此代码的最佳位置在哪里,我需要帮助/想法编写代码。
【问题讨论】:
标签: ruby-on-rails ruby rails-activerecord