2

제 3 자 지불 제공자 서비스의 데이터를 저장하는 테이블을 가진 mysql 데이터베이스가 있습니다. 우리가 저장하는 데이터는 주로 고객을위한 구독 세부 정보입니다. 불행히도 데이터를 가져 오기 위해 내보내기 파일을 다운로드하고 파싱해야합니다. 내가하고 싶은 일은 내 데이터베이스에서 구독 end_dates를 업데이트하는 일상적인 작업을 설정하는 것입니다.레일즈, mysql, 최신 데이터 유지

Subscription object: 
    attributes: 
    id: 
    subscription_uuid: 
    account_code: 
    email: 
    current_period_ends_at: 

내가 알고 싶은 것은 레일을 사용하여 MySQL의에서 날짜 필드 current_period_ends_at 이러한 개체를 업데이트 할 수있는 가장 효율적인 방법입니다 : 그래서 다음과 같습니다 가입 개체가 말한다.

I는 다음과 같습니다 해시의 배열로 시작하는 오전 :

[{:id => 1, :subscription_uuid => 123, :account_code => 10, :email => [email protected], :current_period_ends_at => 2013-10-02 16:37:05}] 

나는 그것이 많은 양의 데이터이기 때문에, 배치의 배열을 반복하고, 레일 update_attributes를 부를 것이다 생각했다 메서드를 데이터베이스의 각 구독 개체에 적용합니다. 나는 더 똑똑한 사람들이 이것을 어떻게 할 것인지 궁금하거나, 구독 개체를 일괄 적으로 검색 할 수있는 방법이 있는지, 또한 일괄 적으로 업데이트하여 프로세스를 더 빠르게 만들 수 있는지 궁금합니다.

도움을 주시면 감사하겠습니다. 감사!

답변

0

나는 만들 것입니다! 객체를 생성하고 저장합니다. 또한 create는 여러 객체를 만들고 저장하기 위해 해시 배열을 허용합니다. 일괄 처리에 대한 직감이 정확합니다.

params = { 
    :id  => something, 
    :subscription_uuid => something, 
    :account_code => something, 
    :email  => something, 
    :current_period_ends_at => something 
    } 
    Subscription.create!(params) 
관련 문제