有人可以用这种方法帮助我吗?

卡洛斯·佩雷斯(Carlos Perez)
def positioning
  tasks = Painting.all.order(:position)
  increment = false
  tasks.each do |t|
    if !increment && t.position == self.position
      increment = true
      t.position += 1
      t.save
    elsif increment
      t.position += 1
      t.save
    end
  end
end

此方法用于before_save回调,并且在添加新绘画时可以使用,但是在增加其他对象的位置时做错了,后来在我要更新任何对象时这是一个问题。

阿尔特姆·安库多维奇(Artem Ankudovich)

使用update_attribute的版本1

paintings = Painting.where(:position >=self.position)
paintings.each do |painting|
  painting.update_attributes(:position, painting.position + 1)
end

版本2使用哈希

paintings = Painting.where(:position >=self.position)
paintings.each do |painting|
  paintingHash = Hash.new
  paintingHash["position"]=painting.position+1
  painting.update(paintingHash)
end

该说明适用于版本2

第1行找到位置高于当前位置的所有绘画

第2行通过选定的绘画开始引人入胜

第3行创建用于更新的新哈希

第4行将值赋给哈希中等于原始位置+1的变量

第5行执行更新

第6行结束迭代

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有人可以用一个简单的Perl脚本来帮助我吗

有人可以在Slim Framework中提供POST方法帮助我吗?

我遇到错误->。有人可以帮助我吗

我非常坚持这项计算作业,有人可以帮助我吗?

我的 yaml 文件引发了错误,有人可以帮助我吗

“超级”对象没有属性“ __getattr__”,有人可以帮助我吗?

有人可以通过以下Java代码帮助我吗?

轮播无法启动5。有人可以帮助我吗?

有人可以通过序言中的这个小程序帮助我吗?

C ++的格式问题有人可以帮助我吗?

有人可以通过这个简单的For Loop帮助我吗?

有人可以在下面的脚本上帮助我吗

我创建了向导,我希望它始终位于中心位置,有人可以帮助我吗?

我有 Unity 瓷砖调色板的问题,有人可以帮助我吗?

我正在尝试将int转换为BigInteger,有人可以帮助我吗?

我在安装ckeditor时遇到一些问题,有人可以帮助我吗?

无法找出为什么我会得到空指针异常,有人可以帮助我吗?

我想将对象的数组列表保存到文件中。有人可以帮助我吗?

我无法在ubuntu 17.04上安装ubuntu tweak,有人可以帮助我吗?

我曾尝试在 ui 上显示集合视图但无法显示有人可以帮助我吗?

我在使用 lua eclipse ide 时遇到问题,有人可以帮助我吗?

discord.js 中的“未定义”错误,有人可以帮助我吗?

有人可以在这里帮助我吗,无法使路由正常工作,继续获取404

有人可以帮助我了解VkPhysicalDeviceMemoryProperties吗?

有人可以帮助我安装Devise吗?

有人可以用这种语言用什么语言向我解释吗?

我想将我的程序的结果从十六进制更改为十进制有人可以帮助我吗?

我使用cx_Freeze编译了我的python代码,代码在此之前运行良好,现在显示此错误有人可以帮助我吗?

我想使用 Node js 在 Pagerduty 中创建一个用户。但我做不到。有人可以帮助我吗?