У меня настроено так, что моя модель пользователя имеет прикрепленный файл :photo
:
has_attached_file :photo, :styles => { :small => "150x150>" },
:url => "../avatars/:basename.:extension",
:path => ":rails_root/public/avatars/:basename.:extension"
validates_attachment_size :photo, :less_than => 5.megabytes
validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png']
Чтобы попытаться использовать это, я добавил поле для загрузки аватара в пользователе edit
view:
<% form_for @user, :html => { :multipart => true } do |f| %>
#Unimportant Stuff here
<%= f.file_field :photo %>
#Unimportant Stuff here
<% end %>
А затем создал методы edit
и update
в моем пользовательском контроллере:
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to(@user, :notice => 'User was successfully updated.') }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
Моя проблема в том, что при всем этом загрузка файлов по-прежнему не работает. Заходя на страницу пользователя и загружая изображение, я просто получаю сообщение «Отсутствует» там, где должно быть изображение. Если я устанавливаю изображение в обязательное поле, я получаю сообщение об ошибке, указывающее, что имя файла является обязательным (так что я думаю, что загрузка просто не работает правильно?).
Любая помощь будет принята с благодарностью.