我已经完成了迁移
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/missing/:style.png"
在我的模型中,我正在使用
<%= form_for @user, :as => :user, :url => user_path, :html => { :multipart => true } do |form| %>
<%= form.file_field :avatar %>
<div class="actions">
<%= form.submit %>
</div>
保存上传的头像
<%= image_tag @user.avatar.url %>
<%= image_tag @user.avatar.url(:medium) %>
<%= image_tag @user.avatar.url(:thumb) %>
要全部显示,但是当我提交新的头像时,它没有被保存,我正在使用
@user = User.create(params[:user])
在创建中应该保存,可能是什么问题?
<%= form_for @user, :validate => true, :html => { :multipart => true } do |f|%>
<div class="field">
<%= f.label :username %><br />
<%= f.text_field :username, :disabled => 'disabled' %><br />
<%= f.label :full_name %><br />
<%= f.text_field :full_name%><br />
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<%= f.file_field :avatar %>
<div class="actions">
<%= f.submit "Update" %>
</div>
<% end %>
ruby-1.9.2-p290 :002 > user = User.first
ruby-1.9.2-p290 :004 > user.avatar
=> /images/missing/original.png
什么都没有改变
avatar_file_name: nil, avatar_content_type: nil, avatar_file_size: nil, avatar_updated_at: nil>
答案 0 :(得分:2)
您需要将:avatar
添加到attr_accessible
列表。
答案 1 :(得分:1)
我认为用户的其他一切都得到了妥善保存?
我唯一想到的是,也许您正在使用attr_accessible
来防止群发作业,而您忘记将avatar_file_name, :avatar_content_type, :avatar_file_size
...添加到白名单中?