2010-12-02 11 views
0

私のレールアプリケーションで動作するnginxアップロードモジュールを取得するのに問題があります。nginxアップロードモジュール

私の経路制御装置では、この方法作成マイ

attr_accessor :tmp_upload_dir 
    after_create :clean_tmp_upload_dir 


    # handle new param 
    def fast_asset=(file) 
     if file && file.respond_to?('[]') 
     self.tmp_upload_dir = "#{file['filepath']}_1" 
     tmp_file_path = "#{self.tmp_upload_dir}/#{file['original_name']}" 
     FileUtils.mkdir_p(self.tmp_upload_dir) 
     FileUtils.mv(file['filepath'], tmp_file_path) 
     self.asset = File.new(tmp_file_path) 
     end 
    end  

private 
# clean tmp directory used in handling new param 
    def clean_tmp_upload_dir 
    FileUtils.rm_r(tmp_upload_dir) if self.tmp_upload_dir && File.directory? (self.tmp_upload_dir) 
    end   

upload_pass @fast_upload_endpoint; 


    upload_store /pathto/shared/uploads_tmp 1; 


    upload_store_access user:rw group:rw all:r; 


    upload_set_form_field upload[fast_asset][original_name] "$upload_file_name"; 
    upload_set_form_field upload[fast_asset][content_type] "$upload_content_type"; 
    upload_set_form_field upload[fast_asset][filepath] "$upload_tmp_path"; 

    upload_pass_form_field "^image_id$|^authenticity_token$|^format$"; 
    upload_cleanup 400 404 499 500-505; 
    } 

    location @fast_upload_endpoint { 

    passenger_enabled on; 
    rails_env production; 
    } 

    location/{ 
    rails_env production; 
    passenger_enabled on; 
    } 

nginx.conf

 match '/images/fast_upload' => 'images#create', :via => :post 

画像モデル

def create 
    @image = current_user.images.build(params[:image]) 
    if @image.save 

基本的には、この作成方法でnginxを使用してアップロードする方法がわかりません。私は@image = @ resource.current_user.images.build(params [:image])を使用しようとしましたが、それは私に未定義のメソッドエラーを与えていました。

答えて

1

確認する必要があるのは、アップロードを作成するときにnginxが渡すパラメータです。私はあなたのような同じ論理を持っています。私が持っている作成アクションは次のとおりです。私は今、nginxが渡すパラメータをテストすることができないので、私と一緒にいてください。しかし、私はそれが "イメージ"ではなく "アップロード"だと思う。

@photo = @artist.photos.build(params[:upload]) 

私の作成方法は?