Ruby on Rails Paperclip - Файлы не сохраняются - PullRequest
2 голосов
/ 01 марта 2011

У меня настроено так, что моя модель пользователя имеет прикрепленный файл :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

Моя проблема в том, что при всем этом загрузка файлов по-прежнему не работает. Заходя на страницу пользователя и загружая изображение, я просто получаю сообщение «Отсутствует» там, где должно быть изображение. Если я устанавливаю изображение в обязательное поле, я получаю сообщение об ошибке, указывающее, что имя файла является обязательным (так что я думаю, что загрузка просто не работает правильно?).

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 02 марта 2011

Я не уверен, можно ли так настроить ваш rails root. Я использовал rails 2.3 для проекта, и мой настроен как # {RAILS_ROOT} /public/pdfs/:id/:style/:basename.:extension

Этот предыдущий ТАК. Пост, кажется, согласен со мной.

0 голосов
/ 01 марта 2011

Не забудьте создать структуру папок, в которую предполагается сохранять вложения.

...