Closed parkournick3 closed 1 year ago
def last_version(model)
model.log_data.data['h'].first do |version_log_data|
version_number = version_log_data['v']
version = model.at(version: version_number)
version.responsible_user_id = version.log_data.responsible_id
version.log_difference_changes = if version_number > 1
model.at(version: version_number)
.diff_from(version: version_number - 1)['changes']
else
model.at(version: version_number).log_data.data['h'][0]['c']
end
return version
end
end
versions = []
@jobs = Job.order(updated_at: :desc).where('jobs.updated_at >= ?', 7.days.ago)
@jobs.each do |job|
versions.push last_version(job, only_last_version) unless job.log_data.nil?
end
I managed with this code, but only filtering updated_at, in my case it works, but it would be really cool to have this feat <Model>.last_versions(limit = 100)
Hey @parkournick00110010!
Can you please take a look at this PR #238? Looks very similar; maybe, we can incorporate your idea there.
is there any method or helper in logidze to do this? something like that
Is there any way to do this manually?