Скрепка не сохраняет аватар прилагается - PullRequest
0 голосов
/ 09 сентября 2011

Я выполнил миграцию У меня есть

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>

Ответы [ 2 ]

2 голосов
/ 28 октября 2011

Вам необходимо добавить :avatar в список attr_accessible.

1 голос
/ 09 сентября 2011

Я предполагаю, что все остальное для пользователя сохраняется правильно?

Единственное, что мне приходит в голову, может быть, вы используете attr_accessible для защиты от массового назначения, и вы забыли добавить:avatar_file_name, :avatar_content_type, :avatar_file_size ... в белый список?

...