5

Gemfileと'bundleinstall'に次の行を入れてインストールしました:

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  

このプラグインはrails3で機能しないのですか、それともステップがありませんか?

これが私が使用しているコードです:

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

このgemは長期間更新されないため、「acts-as-list」gemは使用しないでください。

これを試して:

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

Acts_as_list 0.2.0は、Ruby1.9.3のRails3.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をチェックして、acts_as_listによって生成されたSQLステートメントを確認し、特定のアプリで何が起こっているかを明確に把握してください。

work_queueタスクの作成後に技術者が割り当てられているように見えるため、'<<'を呼び出した後、手動で位置を設定または再計算する必要がある場合があります。また、acts_as_listをTechnicianWorkQueueモデルに移動して、actnicianと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 に答える