GSoC 2022 CircuitVerse | 7주 및 8주 보고서
설명
이번 주에 나는 CircuitVerse로의 공지된 통합을 완료하는 작업을 했습니다. 이것은 내가 배운 것처럼 가장 도전적이고 생산적인 주 중 하나였습니다.
그래서 지난 회의에서 멘토들에게 알림 기능의 데모를 보여줬고 그들은 UI에 약간의 변경이 있고 활동 알림의 이전 데이터를 마이그레이션한다고 말했습니다.
도우미 메서드, UI 및 일부 정리 작업을 완료했습니다. 하지만 저에게 가장 어려운 작업은 한 테이블에서 구성이 다른 다른 테이블로 데이터를 마이그레이션하는 것이었습니다. Aboobacker는 마이그레이션에 대한 쿼리가 포함된 마이그레이션 파일
SQL
을 공유했지만 이 작업에서 수행해야 하는 것보다 비교적 간단했습니다!그래서 저는 오래된 알림을 렌더링하기 위한 많은 솔루션을 생각해냈습니다.
before_action
에 대해 load_old_notifications
메서드를 사용하여 user
필터를 추가할 수 있다고 생각했습니다. 그래서 old_notification
테이블에 migrated
라는 새 열을 기본값false
으로 생성하므로 사용자가 로그인할 때마다 , load_old_notifications
가 실행되고 old_notification
필드가 migrated
인 경우 false
를 체크인하고 notification
테이블에 대한 새 데이터를 생성하고 migrated
를 true
에서 old_notification
로 표시합니다. 테이블. ActivityNotification
gem을 제거할 생각을 하고 있는 만큼 매우 복잡하고 마이그레이션하는 동안 알림 경로를 가져오는 데 필요한 모델 메서드가 있으므로 이 솔루션을 삭제하고 다음과 다음으로 이동했지만 실패했습니다. 마지막으로 ActiveRecords
에서 migration
를 사용할 솔루션을 제시합니다(작동하지만 바람직하지는 않음). 내 마이그레이션 파일은 다음과 같습니다.class PopulateNotificationData < ActiveRecord::Migration[7.0]
include ActivityNotification
def change
Notification.find_each do |data|
newnotification = NoticedNotification.first_or_initialize(
:recipient_type => data.target_type,
:recipient_id => data.target_id,
:type => "PreviousNotification",
:params => {
user_id: data.notifier_id,
path: data.notifiable_path,
message: data.notifiable.printable_notifiable_name(data.target),
type: data.notifiable_type
},
:read_at => data.opened_at
)
newnotification.save!
end
end
end
I need to change it in SQL query.
그래서 4일 정도 걸렸지만 그만한 가치가 있었고 실패에서 많은 것을 배웠습니다.
이번 2주 동안 나는 또한:
다음 주 계획:
push notification
작업을 시작합니다. Reference
이 문제에 관하여(GSoC 2022 CircuitVerse | 7주 및 8주 보고서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/vedantjain03/gsoc-2022-circuitverse-week-7-and-8-report-2a71텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)