Скрепка не сохранит изображение в приложении Rails - PullRequest
4 голосов
/ 26 апреля 2010

Я пытаюсь использовать Скрепка с моим приложением Rails для добавления аватара пользователю, но он не сохранит мое изображение или не обновит столбец базы данных при создании пользователя.

Вот как выглядит модель:

class User < ActiveRecord::Base
  has_attached_file :avatar

И регистр в хамле:

- form_for :user, @user, :url => { :action => "signup" }, :html => { :multipart => true } do |f|
 ...
 ...
      %li
        %div{:class => "header"} Profilepicture
        %div{:class => "input"}
          = f.file_field :avatar

И когда я смотрю в журнале, это то, что передается в действие "регистрация":

Parameters: {"commit"=>"Save", "action"=>"signup", "controller"=>"user/register",      "user"=>{"name"=>"Micke Lisinge", "birthmonth"=>"07", "password_confirmation"=>"[FILTERED]", "nickname"=>"lisinge", "avatar"=>#<File:/tmp/RackMultipart20100426-3076-1x04oxy-0>, "gen"=>"m", "birthday"=>"23", "password"=>"[FILTERED]", "birthyear"=>"1992", "email"=>"lisinge@gmail.coma"}}
[paperclip] Saving attachments.

Скрепка говорит, что он сохраняет шаблон, но когда я смотрю в папку public в моем приложении, он создал system, но папка system пуста.

Похоже, что изображение не сохраняется в папке.

Он обрабатывается формой и сохраняется в моей папке /tmp.

Может быть, у вас, ребята, есть какие-то советы или вы знаете, что это за проблема?

Ответы [ 5 ]

3 голосов
/ 27 апреля 2010

Я получил его на работу.

Мне пришлось добавить :avatar к attr_accessible в моей пользовательской модели .

.помогает кому-то когда-нибудь :) 1009

Спасибо, ребята, за вашу помощь

2 голосов
/ 29 июля 2010

Не забудьте установить: multipart => true в объявлении формы. Это укусило меня один или два раза.

1 голос
/ 20 августа 2010
has_attached_file :asset, :url  => "/assets/:id/:style/:basename.:extension",
  :path => ":rails_root/public/assets/:id/:style/:basename.:extension"

К вашему сведению, этот код фактически сохранил мои файлы в корневом каталоге моей машины "/", так как параметр: rails_root не удался. Это на Rails 3.0.0.rc

0 голосов
/ 27 апреля 2010

Попробуйте установить параметр: path

has_attached_file :avatar,
  :path => ':rails_root/public/system/:id.:extension'
0 голосов
/ 26 апреля 2010

Сначала проверьте правильность path для созданного вложения. Вы можете использовать avatar.path, чтобы определить это. если он не возвращает правильный путь, может быть кто-то переопределяет путь по умолчанию paperclip?

Также проверьте, доступна ли пользователю public / system возможность записи на сервере, на котором вы запускаете сервер приложений.

...