新しいアイテムを既存のアイテムに基づいて追加する機能を追加したいと考えています。新しい項目はすべての古い項目のタスクを持つはずですが、特定の項目をリセットする必要があります。新しいモデルオブジェクトを古いモデルオブジェクトに基づいて作成する方法、特定のフィールドのカスタマイズを許可する方法
モデルクラスメソッド私は作品の下に(def self.copy(item)
)を追加しましたが、アイテムを正確に複製するためのセットアップだけです。いくつかのフィールドをクローンし、ユーザーが残りのデータを入力できるようにしたい。
たとえば、アイテムをコピーするとその番号もコピーされますが、ユーザーに一意の番号を入力する機会を与えたいのですが、どうすればいいですか?
理想的には、アイテムコントローラの新しいアクションにコピー機能を統合して、ユーザーが新しいアイテムを作成するたびに、そのアイテムを現在のアイテムに置き換える機会が与えられるようにしたいと思います。データベース。これは理にかなっていますか?
class Task < ActiveRecord::Base
belongs_to :department
belongs_to :item
belongs_to :customer
end
class Item < ActiveRecord::Base
has_many :tasks
def self.copy(item)
newitem = item.clone
newitem.tasks << item.tasks.map(&:clone)
return newitem
end
end
「いくつかのフィールド」はいつも同じになるでしょうか? – Eric
はい、毎回同じです。 – FellyTone84