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 が存在しないことがわかります。「include」ステートメントまたは mount_uploader 関数の引数として、ユーザー モデルでクラスの完全修飾名を指定しようとすると、それも見つかりません。そのビューで別の form_tag を何らかの方法で構築する必要がありますか? 私はこれが以前に行われたと確信しています。どんな助けでも大歓迎です。

4

1 に答える 1

1

ありますか:

  1. ユーザーモデルに列を追加しました:imageか?
  2. アップローダーを定義しましたapp/uploaders/image_uploader.rbか?
  3. サーバーを再起動しましたか?

image属性が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 に答える