2013-11-27 4 views
0

나는 이미지
을 업로드 사용 클립 보석을 원
기존 데이터베이스가 클립이
작업을 위해 네 개의 매개 변수를 필요로 데 그러나 나는 단지 하나 개의 필드 즉, 파일 이름을 가진이 아닌 데이터베이스
의 모든 매개 변수를 휴식하고 그래서 내가 어떻게 하나의 매개 변수
다음을 사용하여 클립을 통합 할 수있는 것은종이 클립

class ItemMaster < ActiveRecord::Base 

    set_table_name "MDIMT" 

    attr_accessible :IMTNAME, :IMTBRIEFDESC, :IMTDETAILDESC, :IMTIMAGE, :IMTCALORIE, :IMTIMTEMCODE1, :IMTIMTEMCODE2, 
        :IMTPRICE, :IMTISVARPRICE, :IMTISCUSTOMIZED, :IMTDURATIONMINS, :IMTSEQNUM, :CREATEDBY, :MODIFIEDBY, 
        :CREATEDATE, :MODIFYDATE, :EXTRAFIELD1, :EXTRAFIELD2, :EXTRAFIELD3, :EXTRAFIELD4, :IMTISACTIVE, :IMTTAX1, 
        :IMTTAX2, :IMTTAX3, :IMTTAX4, :IMTCNDITEMTYPE, :IMTCNDFILTEROPT 
    alias_attribute :image_file_name, :IMTIMAGE 
    has_attached_file :image, 
        :path => ":rails_root/public/assets/:basename.:extension", 
        :url => "/assets/images/:basename.:extension" 
end 

답변

0

종이 클립이 F 표준 getter 및 setter 저장하거나 값을받는 데 사용하는 모델에서 내 코드입니다 rom. 당신은 직렬화 된 해시에 데이터를 저장하는 대신 getter 및 setter 과부하하려고 클라우드 :

class ItemMaster < ActiveRecord::Base 
    set_table_name "MDIMT" 

    attr_accessible :IMTNAME, :IMTBRIEFDESC, :IMTDETAILDESC, :IMTIMAGE, :IMTCALORIE, :IMTIMTEMCODE1, :IMTIMTEMCODE2, 
        :IMTPRICE, :IMTISVARPRICE, :IMTISCUSTOMIZED, :IMTDURATIONMINS, :IMTSEQNUM, :CREATEDBY, :MODIFIEDBY, 
        :CREATEDATE, :MODIFYDATE, :EXTRAFIELD1, :EXTRAFIELD2, :EXTRAFIELD3, :EXTRAFIELD4, :IMTISACTIVE, :IMTTAX1, 
        :IMTTAX2, :IMTTAX3, :IMTTAX4, :IMTCNDITEMTYPE, :IMTCNDFILTEROPT 

    alias_attribute :image_hash, :IMTIMAGE 
    default_value_for :image_hash, {} 
    serialize   :image_hash, Hash 

    has_attached_file :image, 
        :path => ":rails_root/public/assets/:basename.:extension", 
        :url => "/assets/images/:basename.:extension" 

    %w[ image_file_name image_file_size image_content_type image_processing image_updated_at ].each do |field| 

    # Adds getter and setter for all keys in the array and stored the data in the image_hash instead 
    class_eval <<-END_OF_RUBY, __FILE__, __LINE__ + 1 

     def #{field} 
     image_hash['#{field}'] 
     end 

     def #{field}=(value) 
     self.image_hash['#{field}'] = value 
     end 

    END_OF_RUBY 
    end 
end 
+0

하지만 # 촉구'image_hash을 '오류 개인 방법을 제공 user3094168

+0

나는 또한 보석 – user3094168

+0

default_value_for 포함했다 @ Kiran : 코드에서'private' 메소드'image_hash'를 제거하고 대신'default_value_for : image_hash, {}'선언을 추가했습니다. 다시 시도하십시오. 이 코드는 테스트하지 않았으며 개념 일뿐입니다. 그러나 나는 그것이 작동하는 해결책에 가깝다는 것을 확신한다. – spickermann