0

当用户注册时,我希望他们能够上传头像。新的注册 .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" %>

用户.rb:

class User < ActiveRecord::Base
    ....
    mount_uploader :image, ImageUploader

ImageUploader 存在...

当我尝试访问视图时,它告诉我 User::ImageUploader 不存在。当我尝试在用户模型中指定类的完全限定名称时,无论是作为“包含”语句还是作为 mount_uploader 函数的参数,它也找不到。我是否需要在该视图中以某种方式构建单独的 form_tag ?我敢肯定这以前已经做过了。任何帮助表示赞赏。

4

1 回答 1

1

你:

  1. :image在您的用户模型中添加了一个列?
  2. 定义上传者app/uploaders/image_uploader.rb
  3. 重启了你的服务器?

只要图像属性存在于 User 模型上,您就不需要将其作为单独的表单标签。

您可能需要检查您的表单标记。我注意到你:username在标签和:name球场上都有。

尝试改变:

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

<%= f.label :name, "username" %><br />
<%= f.text_field :name %>
于 2012-06-04T06:06:55.697 回答