2011-10-19 22 views
16

Làm cách nào để mọi người viết di chuyển Rails của họ có liên quan đến Paperclip? Tôi cảm thấy rằng tôi có thể thiếu một cái gì đó hiển nhiên như bây giờ tôi đã viết những người giúp đỡ di trú của riêng tôi, điều đó làm cho nó dễ dàng hơn và cũng quan tâm đến những thay đổi hệ thống tập tin cần thiết. Và tất nhiên bạn nên chạy thử các kiểu di chuyển này trong môi trường phát triển (và dàn dựng) trước khi triển khai vào sản xuất.Cách di chuyển Rails liên quan đến Paperclip

Paperclip migration rename, add and remove helpers
Paperclip change path migration helper (không thực sự là một cơ sở dữ liệu di cư nhưng nghĩ nó phù hợp khá đẹp anyway)

Có bất kỳ giải pháp tốt hơn hoặc thực hành tốt nhất? một số người dường như tạo ra nhiệm vụ cào vv mà cảm thấy khá cồng kềnh.

Trả lời

37

Có máy phát điện bao gồm trong đá quý cho việc này:

Rails 2:

script/generate paperclip Class attachment1 (attachment2 ...) 

Rails 3:

rails generate paperclip Class attachment1 (attachment2 ...) 

ví dụ

rails generate paperclip User avatar 

tạo:

class AddAttachmentsAvatarToUser < ActiveRecord::Migration 
    def self.up 
    add_column :users, :avatar_file_name, :string 
    add_column :users, :avatar_content_type, :string 
    add_column :users, :avatar_file_size, :integer 
    add_column :users, :avatar_updated_at, :datetime 
    end 

    def self.down 
    remove_column :users, :avatar_file_name 
    remove_column :users, :avatar_content_type 
    remove_column :users, :avatar_file_size 
    remove_column :users, :avatar_updated_at 
    end 
end 

Xem thêm các phương pháp helper sử dụng trong ví dụ trong readme

class AddAvatarColumnsToUser < ActiveRecord::Migration 
    def self.up 
    change_table :users do |t| 
     t.has_attached_file :avatar 
    end 
    end 

    def self.down 
    drop_attached_file :users, :avatar 
    end 
end 
+0

Cảm ơn, tôi cần phải có được một chút rõ ràng hơn rằng tôi chủ yếu có nghĩa là di cư liên quan cột kẹp giấy hiện có và đổi tên và thay đổi đường dẫn cần thay đổi hệ thống tập tin, v.v. –

+1

Ah, hãy xem câu hỏi sau: http://stackoverflow.com/questions/270811 5/paperclip-renaming-files-after-theyre-saved/6335337 # 6335337 – Jared

+0

Ok, Đó là locka nhiều hơn hoặc ít hơn như những gì tôi làm trong những người giúp đỡ của tôi. Đoán đó là cách mọi người làm điều đó. –

Các vấn đề liên quan