2011-04-21 25 views
7

Kullanıcının avatarını diğer verileri değiştirmeyle birlikte yükleyebilmesi ve yüklemeden sonra kullanıcıyı kırpabilmesi için düzenleme kayıt denetleyicisini geçersiz kılmaya çalışıyorum. kayıt düzenleme denetleyicisi + ataç

i yarattı mahsul görünümü tüm necesarry kullanıcı ataç özelliklerini eklendi ve benim tescilleri kontrolör benziyor:

class RegistrationsController < Devise::RegistrationsController 
    def update 

    if params[resource_name][:avatar].blank? 
      super 
    else 
      @user=resource 
     respond_to do |format| 
     if resource.update_attributes(params[resource_name]) 
      flash[:notice]='Avatar successfully uploaded.' 
      format.html { 
        render :action => 'crop' 
      } 
      format.xml { head :ok } 
      else 
      format.html { render :action => "editpicture" } 
      format.xml { render :xml => @demotivator.errors, :status => :unprocessable_entity } 
      end 
     end 
    end 
    end 

end 

ama resim ile formu göndermek zaman, hiçbir şey firefox "yükleme göstermesi haricinde, olmuyor. .." sonsuza dek! geliştirme günlüğüne kesinlikle hiçbir güncelleştirmeler .. :(

kimse ben yanlış yapıyor olabilir bana ne söyleyebilirdi

ps kullanıcı düzenlemesi formu benziyor:?.

cevap

7

sadece gerekiyordu oluşur Kullanıcı modelinde

attr_accessible :avatar 

ekleyin ve bunu iseniz düzgün

+4

Bu, Rails 4 uygulamaları için nasıl yapılır? –

2

çalışmaya başladı `

def configure_permitted_parameters 
     devise_parameter_sanitizer.permit(:account_update, keys: [:firstname, 
        :lastname, :username, :password, :email, :bio, 
        :avatar,:password_confirmation, :current_password ]) 
end` 
  • bu etiket eklemek emin olun: Rails 4 kullanarak, emin param aşağıda gibi denetleyici izin olun RegistrationsController

    # get devise to recognize the custom fields of the user model 
    before_filter :configure_permitted_parameters, if: :devise_controller? 
    
    protected 
    
        def configure_permitted_parameters 
         devise_parameter_sanitizer.for(:account_update) do |u| 
          u.permit(:avatar, :email, :password, :password_confirmation) 
         end 
        end 
    
  • 0
    1. aşağıdakileri ekleyin : :html => { :multipart => true } formunuza için:

      <%= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }, :html => { :multipart => true }) do |f| %>