Ruby on rails 如何添加载波上传器设计注册视图?(轨道宝石)

Ruby on rails 如何添加载波上传器设计注册视图?(轨道宝石),ruby-on-rails,upload,devise,carrierwave,Ruby On Rails,Upload,Devise,Carrierwave,当用户注册时,我希望他们能够上传一个头像。新的registration.html.erb如下所示: <h2>Sign up</h2> <%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => {:multipart => true} ) do |f| %> <%= devise_error_mes

当用户注册时,我希望他们能够上传一个头像。新的registration.html.erb如下所示:

<h2>Sign up</h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => {:multipart => true} ) do |f| %>
<%= devise_error_messages! %>

<div>
<%= f.label :username %><br />
<%= f.text_field :name %>
</div>

<div>
<%= f.label :image %><br />
<%= f.file_field :image %>
</div>

<div><%= f.label :email %><br />
<%= f.email_field :email %></div>

<div><%= f.label :password %><br />
<%= f.password_field :password %></div>

<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>

<div><%= f.submit "Sign up" %></div>
<% end %>

<%= render "links" %>
注册
资源名称,:url=>注册路径(资源名称),:html=>{:multipart=>true})do | f |%>





User.rb:

class User < ActiveRecord::Base
    ....
    mount_uploader :image, ImageUploader
class用户
图像上载程序存在

当我尝试访问视图时,它告诉我User::ImageUploader不存在。当我试图在用户模型中指定类的完全限定名时,无论是作为“include”语句还是作为mount_uploader函数的参数,它都找不到。我是否需要以某种方式在该视图中构建一个单独的form_标记?我相信这是以前做过的。非常感谢您的帮助。

您是否:

  • 是否在您的用户模型中添加了
    :image
  • 定义了uploader
    app/uploaders/image\u uploader.rb
  • 重新启动服务器
  • 只要用户模型上存在image属性,就不需要将其作为单独的表单标记

    您可能需要检查表单标记。我注意到标签上有
    :username
    ,字段上有
    :name

    尝试更改:

    <%= f.label :username %><br />
    <%= f.text_field :name %>
    



    Yep,用户在其中有一个图像,尽管我无法在rails控制台中调出一个图像而不注释对ImageUploader的引用(NameError:uninitialized constant User::ImageUploader,与我从视图中得到的一样)。重新启动服务器没有任何效果。我将编辑这个问题,以显示当ImageUploader被注释出user.rb时会发生什么。您的用户模型上的列名为
    name
    还是
    username
    ?您的表单标记中有一个标签,另一个标签有一个字段。该列称为name,表单标签为“username”,在出现此图像之前,它似乎工作正常
    可能更好。但不确定它是否能解决您的问题。你能发布你的image\u uploader.rb吗?当我试图在用户模型中指定类的完全限定名时,你能解释一下你所说的
    是什么意思吗。您将图像url存储在哪里?作为用户模型中的属性,还是单独的模型中的属性?
    
    <%= f.label :name, "username" %><br />
    <%= f.text_field :name %>