Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 设计注册控制器+;回形针_Ruby On Rails_Devise_Paperclip_Crop - Fatal编程技术网

Ruby on rails 设计注册控制器+;回形针

Ruby on rails 设计注册控制器+;回形针,ruby-on-rails,devise,paperclip,crop,Ruby On Rails,Devise,Paperclip,Crop,我正试图覆盖Desive registrations controller,这样用户就可以上传他的头像以及更改其他数据,并在上传后裁剪userpic 我添加了所有必需的Arry用户回形针属性,创建了裁剪视图,我的注册控制器如下所示: class RegistrationsController < Devise::RegistrationsController def update if params[resource_name][:avatar].blank?

我正试图覆盖Desive registrations controller,这样用户就可以上传他的头像以及更改其他数据,并在上传后裁剪userpic

我添加了所有必需的Arry用户回形针属性,创建了裁剪视图,我的注册控制器如下所示:

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
<%= form_for(@user, :url => registration_path(@user), :html => {:id => "userpic_form", :method => :put, :multipart => true}) do |f| %>
 <p class="box1_po">Current password: <%= f.password_field :current_password %></p>
 <p class="box1_po">Please select your user picture:
                                            <%= f.file_field :avatar  %>
 </p>
 <input type="submit" class="usubmit"><%= link_to "UPLOAD", "#", :onclick => "$('#userpic_form').submit();"%>
<% end %>
类注册控制器“裁剪”
}
format.xml{head:ok}
其他的
format.html{render:action=>“editpicture”}
format.xml{render:xml=>@demoivator.errors,:status=>:unprocessable_entity}
结束
结束
结束
结束
结束
但是当我提交带有图片的表单时,除了firefox永远显示“加载…”之外,什么也没有发生!开发日志中绝对没有更新..:(

谁能告诉我我做错了什么

注:用户编辑表单如下所示:

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
<%= form_for(@user, :url => registration_path(@user), :html => {:id => "userpic_form", :method => :put, :multipart => true}) do |f| %>
 <p class="box1_po">Current password: <%= f.password_field :current_password %></p>
 <p class="box1_po">Please select your user picture:
                                            <%= f.file_field :avatar  %>
 </p>
 <input type="submit" class="usubmit"><%= link_to "UPLOAD", "#", :onclick => "$('#userpic_form').submit();"%>
<% end %>
registration_path(@user),:html=>{:id=>“userpic_form”,:method=>:put,:multipart=>true})do | f |%>
当前密码:

请选择您的用户图片:

“$('#userpic_form')。提交();”%>
发生,我必须添加

attr_accessible :avatar

在用户模型中,它开始正常工作

如果您使用的是Rails 4,请将以下内容添加到
RegistrationController

# 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
  • 确保控制器中允许以下参数: `

  • 确保将以下标记添加到表单中:
    :html=>{:multipart=>true}

    {:multipart=>true})do | f |%>