저는 레일즈 3.0에 있으며 "프로젝트 관리"응용 프로그램을 만들고 있습니다. 내 경우에는 "프로젝트"이고, 동시에 해당 항목에 속한 모든 작업을 복제하는 항목을 복제하고 싶습니다.동일한 모델에 속한 "작업"그룹을 복제하는 방법
내가 찾은 코드로 상품 모델을 채웠다 : http://www.redmine.org/projects/redmine/repository/revisions/2704/diff/trunk/app/models/project.rb, 내가 원하는 것을 수행하는 것처럼 보이지만 나에게 맞도록 만들 수는 없다.
내가 제공 할 수있는 도움이 필요하십니까? 일반 또는 특정! 감사!
class Task < ActiveRecord::Base
belongs_to :department
belongs_to :item
belongs_to :customer
end
class Item < ActiveRecord::Base
belongs_to :customer
has_many :tasks
def copy(item)
item = item.is_a?(Item) ? item : Item.find(item)
Item.transaction do
# Tasks
item.tasks.each do |task|
new_task = Task.new
new_task.copy_from(task)
self.tasks << new_task
end
self.save
Hook.call_hook(:model_item_copy_before_save, :source_item => item, :destination_item => self)
end
end
def self.copy_from(item)
begin
item = item.is_a?(Item) ? item : Item.find(item)
if item
# clear unique attributes
attributes = item.attributes.dup.except('id')
copy = Item.new(attributes)
copy.enabled_modules = item.enabled_modules
copy.trackers = item.trackers
copy.custom_values = item.custom_values.collect {|v| v.clone}
return copy
else
return nil
end
rescue ActiveRecord::RecordNotFound
return nil
end
end
또 다른 것 - Hook.call_hook이란 무엇입니까? 나는 웹상에 그 어떤 언급도 찾을 수 없다.
http://www.redmine.org/projects/redmine/repository/entry/trunk/lib/redmine/hook.rb – jibiel