Cześć,
trochę musiałem zmodyfikować kod, bo potrzebuję rozdzielić mikołaja na name i surname, oba pola nie mogą być puste. Jak był rollback, to jak była 1 linia zła to nic mi nie dodawało do bazy. A ja chcę żeby dodało poprawne rekordy, a złe zignorowało.
def self.create_from_text(txt)
txt = txt.split("\r\n").reject(&:blank?)
n=0
self.transaction do
txt.map! do |human|
human = human.split(" ")
mikolaj = new(name: human[0] , surname: human[1])
if mikolaj.save
n+=1
end
end
end
[txt.length,n]
end
[code=ruby] n = Mikolaj.create_from_text(params[:list_of_mikolaj])
if n[1]>0
if n[0]==n[1]
@notice = “Added #{n[1]} mikolajs”
else
@mis = n[0]-n[1]
@notice = “Added #{n[1]} mikolajs, #{@mis} lines were ignored”
end
respond_to do |format|
format.html { redirect_to mikolajs_path, notice: @notice }
format.json { render json: group_mikolajs_path, status: :created, location: mikolajs_path }
end
else
flash[:notice] = 'Did not add mikolajs'
render action: "new"
end[/code]
Może tak być?