Acts_as_list 是“最后一个”吗?方法没有按预期工作或者我犯了一个错误?
所以我在当前的 Rails 项目中使用acts_as_list。我遇到了以下奇怪的行为:
当我从列表中删除一个项目(item.remove_from_list)时,它正确地将此项的位置列设置为nil并更新其他列表项的位置值。
但是,我最后打电话是什么时候?对于列表中的“最后”一项(例如位置编号最高的一项),它返回 false。事实上,列表中的每一项都会返回 false 到最后一项吗?方法。我突然好像失去了最后一个?物品!
这里出了什么问题?
亲切的问候, 欧文
So I am using acts_as_list in my current rails project. And I run into the following odd behavior:
When i remove an item from the list (item.remove_from_list) it correctly sets the position column of this item to nil and updates the position values of the other list items.
However, when I call last? on the "last" item in the list (e.g. the one with the highest position number) it returns false. In fact, every item in the list will return false to the last? method. I suddenly seem to have lost my last? item!
What's going wrong here?
Kind regards,
Erwin
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在acts_as_list 中,
last?
方法被添加到每个ActiveRecord 实例中:首先它检查对象是否在列表中。方法如下:
所以我会检查您认为列表中最后一个对象的position_column,看看它是否为非零。从列表中删除对象之前和之后执行此操作。
In acts_as_list, the
last?
method is added to each ActiveRecord instance:First it checks if the object is in the list. Here's the method:
So I would check the position_column of the object you believe to be last in the list to see if it is non-nil. Do this before and after you remove an object from the list.