5

我通过将以下行放入 Gemfile 和“捆绑安装”进行安装:

gem 'acts_as_list', '>= 0.1.0'  

但是,当我尝试使用它时,结果并不如预期:

technician.move_to_top #works => position = 1  
technician.move_to_bottom #does not work properly; also makes position = 1  
technician.move_higher #does not work; returns nil  
technician.move_lower #does not work; also returns nil  

这个插件是否不适用于 rails 3 或者我错过了一步?

这是我正在使用的代码:

class WorkQueue < ActiveRecord::Base  
  has_many :technicians, :order => "position"  
end  

class Technician < ActiveRecord::Base  
  belongs_to :work_queue  
  acts_as_list :scope => "work_queue_id" #I also tried using work_queue  
end  

这是控制台:

wq = WorkQueue.new  
technician = Technician.last
wq.technicians << technician  
4

3 回答 3

9

不要使用“acts-as-list” gem,因为这个 gem 很长时间不会更新。

尝试这个:

rails plugin install git://github.com/swanandp/acts_as_list.git
于 2011-05-20T03:55:26.113 回答
3

act_as_list 0.2.0 在 Ruby 1.9.3 上的 Rails 3.2.11 中为我工作。但是,用于添加任务的 << 语法会导致问题。我使用 list.tasks.create() 代替。

这是一个示例测试:

test "acts_as_list methods" do
  list = ToDoList.create(description: 'To Do List 1')

  task1 = list.tasks.create(description: 'Task 1')
  task2 = list.tasks.create(description: 'Task 2')
  task3 = list.tasks.create(description: 'Task 3')

  assert_equal 3, list.tasks.count
  assert_equal task1.id, list.tasks.order(:position).first.id
  assert_equal task3.id, list.tasks.order(:position).last.id

  # Move the 1st item to the bottom. The 2nd item should move into 1st
  list.tasks.first.move_to_bottom

  assert_equal 3, list.tasks.count
  assert_equal task2.id, list.tasks.order(:position).first.id
  assert_equal task1.id, list.tasks.order(:position).last.id
end

当创建一个与 to_do_list 无关的新任务时,acts_as_list 将分配一个针对 to_do_list_id == nil 的位置。稍后使用 << 将现有任务添加到 to_do_list 不会更新任务位置,因此acts_as_list 对位置感到困惑。

检查您的 test.log 以查看 act_as_list 生成的 SQL 语句,从而清楚地了解您的特定应用程序中发生的情况。

由于您的技术人员似乎是在创建 work_queue 任务后分配的,因此您可能需要在调用“<<”后手动设置或重新计算职位。您还可以考虑将acts_as_list 移至您的TechnicianWorkQueue 模型,以便仅在您创建Technician 和WorkQueue 之间的关系时调用acts_as_list。

于 2013-04-21T15:08:53.680 回答
0

看起来它应该可以工作:http ://www.railsplugins.org/plugins/317-acts-as-list?version_id=418

于 2010-12-22T02:02:23.683 回答