2016-03-22 7 views
1

私は3つのフィールドを含む "div"をクローンしました。 Imがデータベース内のそれらの値を更新している間に、以前の値を削除し、idを使用してこれらの値を置き換えます。以前のレコード値を削除せずに列の値を更新するにはどうすればよいですか?以前のクローンフィールドレコードを削除せずにdb内のクローン要素値を更新

@pre_data=MgMultiSelect.where(:mg_details_id=>params[:id]) 

@pre_data.each do |select| 
    select.is_deleted=1 
    select.save 
end 

@selected_data=params[:team_id_new] 

if @selected_data.present? 

    for i in [email protected]_data.length 

    @update_data=MgMultiSelect.new() 
    @[email protected]_data[i] 
    @[email protected]_data.id 
    @update_data.is_deleted=0 
    @update_data.save 

    end 

end 

モデル:

class CreateMgMultiSelects < ActiveRecord::Migration 
def change 
    create_table :mg_multi_selects do |t| 
    t.string :team_id_new 
    t.integer :mg_details_id 
    t.boolean :is_deleted 
    t.timestamps 
    end 
end 
end 
+1

あなたが問題を記述するためのコードスニペットのいくつかの種類を提供することはできますか? –

+0

ここでは、参照列を「is_deleted」とし、それをfalseに設定しました。 "is_deleted"が真であるレコードを取得する。代わりに、私はすでに存在するレコードの値を変更したい – BalajiB

+0

コードスニペットで十分ですか、もう少し追加する必要がありますか? @JohnBargman – BalajiB

答えて

1

あなたは、このようにそれを試してみてください:

@pre_data=MgMultiSelect.where(:mg_details_id=>params[:id]) 

@selected_data=params[:team_id_new] 
if params[:team_id_new].present? 

    params[:team_id_new].each do |id| 
    obj = @pre_data.where(:team_id_new => id).first 
    if obj.present? 
    obj.update_attributes(:mg_details_id => @task_data.id,:is_deleted => 0) 
    end 
    end 
end 
関連する問題