问题标签 [acts-as-list]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails-3 - 在 ActiveAdmin 中重新排序
有时我们需要重新排序资源,acts_as_list对这项任务非常有用。我的问题是:在ActiveAdmin框架中实现某些资源重新排序的最佳方法是什么。
我知道没有“最好的方法”,但我想欢迎所有回复,这样人们就可以找到这类问题的各种答案。
我自己写下了一种可能的解决方案,它使用带有拖放功能的 jquery,但不适用于过滤器、范围和排序。也许有理由专门为拖放重新排序使用单独的视图,或者可能有人使用复选框、按钮等制作了不同的 UI……</p>
请分享!
ruby-on-rails - 使用acts_as_list 并将浮点数转换为int 值
我想在最初用 php 编写并正在移动到 rails 的应用程序中使用acts_as_list。我们使用了一个浮动的“位置”值,这样如果用户想在位置 1 和 2 之间放置一些东西,他们只需在表单中输入 1.5。看起来acts_as_list 只使用整数。act_as_list 中有没有办法让它使用浮点数而不是整数?或者可能将一组浮点数转换为整数以进行插入?
谢谢
ruby-on-rails - 如何让 Rails 的acts_as_list 将新项目添加到列表的开头?
我有一个与acts_as_list集成的模型。但是,默认情况下,创建的新项目会添加到列表的末尾。是否有默认方式将新项目添加到开头?
谢谢!
ruby-on-rails - 使用acts_as_list gem 时重置位置属性?(导轨)
我有一个简单的 Rails 3 应用程序,其中一个目标有许多目标。在我看来,我允许用户对任何给定目标的目标重新排序,并且我正在使用acts_as_list gem 来实现其中的一些功能。
目标模型:
目标模型:
我还希望允许用户更改与特定目标相关联的目标。我会假设acts_as_list
只要更改了目标的目标(因为我定义了scope => :goal
),gem 就会重置位置列,但它只是保留当前位置。
对我来说,这是不可取的,因为在新目标的背景下,这个位置不再有意义。我宁愿重置位置,并将目标移动到与之关联的新目标的底部。所以我写了这个方法before_save
在目标模型中发生:
stack level too deep
不幸的是,当我尝试保存时,这会导致错误。关于如何解决这个问题的任何想法?
ruby-on-rails - 防止将默认范围应用于acts_as_list
我使用acts_as_list来生成书的槽号:
acts_as_list :scope => :book_id, :column => :slot
并有一个默认范围,可防止已删除(软删除)书籍进入结果集:
default_scope where(:is_active => true)
我想防止默认范围应用于acts_as_list 声明,因为如果有人删除最后一本书并创建一个新书,他们会得到相同的插槽号(因为当它获取最后一个插槽号时,默认范围被应用并且它没有得到已删除的条目)。我知道unscoped
,但是如何将它与acts_as_list 一起使用?
我正在使用 Rails 3.0.11。
ruby-on-rails - rails:使用 :order 对 has_many 进行排序由于时间戳排序而无法正常工作
我有一个 Rails 模型,假设用户与 Post 有很多关系。Post 包含一个名为 position 的属性,用于存储位置(acts_as_list gem)。位置存储用户帖子列表中的位置(顺序不是由于创建/修改帖子)。此外,帖子存储了时间戳(t.timestamps
在迁移中)
所以我在 User.rb 中定义了以下内容:
但是,当我这样做时User.first.posts
,帖子不是按位置排序的。我已经检查过,正在查询的 sql 包含以下内容:
所以 created_at 仍在使用中。
如何按位置排序而不使用 created_at 属性?
提前致谢!
解决方案 我在 Post 中定义了一个默认范围,该范围正在创建不希望的订单。
问题解决了
ruby-on-rails - 在视图中订购 has_many 列表
我有一个名为 Person 的模型,用户为其选择了五个个性特征。但是,他们选择它们的顺序很重要(他们选择描述性最强到描述性最差)。
我知道如何创建一个带有毒药的连接表并以这种方式进行排序。我也在使用acts_as_list。
但我似乎找不到任何帮助,如何为我的应用程序的用户创建一种设置特征顺序的方法。那就是我想在 HTML 中说五个选择框,让他们选择每一个,并使用 jQuery UI Sortable 之类的东西,让他们可以随意移动它们。
这是我的模型的基本概念(为了获得概念而进行了简化)。
我只是不知道如何在我的视图/控制器中进行定位,以便在提交表单时知道哪个特征在列表中的哪个位置。
ruby-on-rails - 麻烦更新has_man:通过记录
我在通过记录更新 has_many 时遇到问题。这是我的设置:
我试图为此使用acts_as_list,因为TastinGroup 中葡萄酒的顺序很重要,所以我在GroupWine 模型中添加了一个“位置”属性。
但是,当我尝试更新 GroupWine 记录时,我收到以下错误,这就是我正在做的事情。
这是我得到的错误......
group_wines 的 NULL 是怎么回事,为什么要添加 where 子句?
谢谢。
ruby-on-rails - 使用acts_as_tree 和acts_as_list 进行依赖销毁
目前我将rails 2应用程序升级到rails 3.2.13,它使用acts_as_tree和acts_as_list。之前,升级它运行良好。因为,我对acts_as_tree 和acts_as_list 有依赖破坏的问题。
我必须模型:
鉴于我有一个用户:
有 2 个类别,其中一个类别是另一个类别的子类别:
当我尝试销毁用户时,dependent: :destroy
尝试销毁类别。它破坏了第一类。由于该类别有一个孩子(id 2)acts_as_tree 也将其销毁。但后来似乎acts_as_list 试图重新加载第二类的位置。自然,它不再存在,所以它提出:
任何人都有解决它的想法?
PS:Rails 3.2.13、Ruby 1.9.3、acts_as_tree 1.4.0 和acts_as_list 0.2.0
ruby-on-rails - 多租户应用程序中的acts_as_list - 如何设置范围?
问题
我在多租户应用程序中使用acts_as_list。我使用这个 Railscast 对多租户建模:#388 Multitenancy with Scopes(需要订阅)。
我需要确保我的 around_filter 正常工作,以便租户不会影响其他租户的数据。
由于acts_as_list 忽略default_scope,确定acts_as_list 范围以强制执行多租户的最佳方法是什么?
背景
基本思想是在 application_controller.rb 中使用 around_filter,如下所示:
这样,每次在应用程序中加载页面时,都会设置 current_tenant,我可以使用 default_scope 来限制仅访问 current_tenant 的内容。像这样:
但是acts_as_list 使用Model.unscoped(在本例中为Submission.unscoped),绕过了我的default_scope。
这是我正在研究的特定模型:
我在其他几个地方这样做,但我使用 id 列而不是 for_date,所以acts_as_list 声明如下所示:
效果很好。但是当我用我的提交模型尝试这个,并在acts_as_list范围中包含for_date时,我得到了这个错误:
我将如何添加这样一个明确的类型转换?还是有更好的方法来做到这一点?