2015-02-02 3 views
0

"profile_picture"라는 기존 데이터베이스 열이 있는데이 열은 현재 텍스트 열입니다. 필자는 클립 클립 보석을 사용하여 사용자가 자신의 "profile_picture"를 업로드 할 수있게하고 싶습니다.기존 열이있는 클립 사용

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? "profile_picture"열을 제거하고 새로운 클립 클립 마이그레이션을 실행해야합니까? 아니면 어떻게 든이 열을 수정하고 연관된 file_name, content_type 등의 필드를 추가 할 수 있습니까?

답변

0

procile_picture가 paperclip이 일반적으로 사용하는 열 (profile_picture 속성은 profile_picture_file_name 열을 사용함)이 아니기 때문에 열을 제거 할 필요가 없습니다. 그러나 데이터베이스에서 비슷한 이름의 속성에 매핑되지 않는 열을 포함하는 것은 혼란 스럽습니다 (set 및 get 메서드는 클립으로 제공되기 때문에). 클립 클립을 생성하기 전에 이름을 바꾸거나 ... : 사용하지 않는 경우 단순히 열을 제거하십시오. 할 수있을 때마다 정리를하십시오.

클립 클립을 처리 할 수없는 데이터가 포함될 수 있으므로 열 이름을 profile_picture_file_name으로 바꾸지 말 것을 강력히 권장합니다.

class AddAvatarColumnsToUsers < ActiveRecord::Migration 
    def self.up 
    rename_column :users, :profile_picture, :old_profile_picture 
    add_attachment :users, :profile_picture 
    end 
    def self.down 
    remove_attachment :users, :profile_picture 
    rename_column :users, :old_profile_picture, :profile_picture 
    end 
end