2011-04-21 13 views
7

मैं तैयार पंजीकरण नियंत्रक को ओवरराइड करने की कोशिश कर रहा हूं ताकि उपयोगकर्ता अन्य अवतार बदलने के साथ अपना अवतार अपलोड कर सकें और अपलोड करने के बाद उपयोगकर्तापिक को फसल कर सकें।तैयार पंजीकरण नियंत्रक + पेपरक्लिप

मैं सभी necesarry उपयोगकर्ता पेपरक्लिप गुण बनाया फसल दृश्य जोड़ा गया, और मेरा पंजीकरण नियंत्रक कि तरह लग रहा है:

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 

लेकिन जब मैं तस्वीर के साथ फ़ॉर्म सबमिट करेंगे, कुछ भी नहीं है सिवाय इसके कि फ़ायरफ़ॉक्स "लोड हो रहा पता चलता है, होता है। .." सदैव! विकास लॉग में बिल्कुल कोई अपडेट .. :(

किसी को भी मुझे बता सकते हैं मैं गलत क्या कर किया जा सकता है

ps उपयोगकर्ता संपादित रूप है कि तरह लग रहा है?।

उत्तर

7

होता है मैं सिर्फ पड़ा उपयोगकर्ता मॉडल में

attr_accessible :avatar 

जोड़ सकते हैं और यह ठीक से काम

+4

यह रेल 4 ऐप्स के लिए कैसे किया जाता है, हालांकि? –

2

यदि आप शुरू कर दिया रेल 4 का उपयोग कर, जोड़ने 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. के लिए निम्न सुनिश्चित करें कि परम नीचे की तरह नियंत्रक में अनुमति दी है: `

    def configure_permitted_parameters 
         devise_parameter_sanitizer.permit(:account_update, keys: [:firstname, 
            :lastname, :username, :password, :email, :bio, 
            :avatar,:password_confirmation, :current_password ]) 
    end` 
    
  2. यकीन है कि आप इस टैग जोड़े हैं : :html => { :multipart => true } आपके फॉर्म में:

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

संबंधित मुद्दे