Мы создаем приложение для планирования и пытаемся создать функцию копирования / вставки для расписаний от недели к неделе.Я пытаюсь выяснить, как дублировать расписание на определенный период времени при обновлении атрибутов при вставке.Прямо сейчас я могу скопировать расписание, но при запуске его на почтальоне, даты и время остаются такими же (как и следовало ожидать с .dup.) Я считаю, что было бы лучше установить время начала / окончания на ноль изатем при вставке может быть обновлены атрибуты в то время?
Вот функция, которую я имею до сих пор:
def copy
set_calendar
if params["start_date"] && params["end_date"]
start_date = params["start_date"].to_date
end_date = params["end_date"].to_date
if @calendar.users.owners.include?(current_user) || @calendar.users.managers.include?(current_user)
@past_shifts = Shift.where(calendar_id: @calendar.id, start_time: start_date.beginning_of_day .. end_date.end_of_day).to_a
if
@past_shifts.each do |past_shift|
shift = past_shift.dup
shift.users = past_shift.users
shift.update(shift_params)
shift.save
end
render json: "copied", status: :ok
else
render json: @usershift.errors, status: :uprocessable_entity
end
else
render json: ("You do not have access to copy shifts"), status: :unauthorized
end
end
end
shift.update (shift_params) - это часть, которая должна обновить время начала и окончания.Вот параметры смены:
def shift_params
params.permit(:start_time, :end_time, :calendar_id, :capacity, :published)
end
Что касается установления отношений, этот текущий метод создается в контроллере сдвигов.У смены много пользователей за смену пользователей, у пользователя много смен за смены пользователей, и модель смены пользователей принадлежит обоим.