Devise, заставить контроллер регистрации принимать изображение? - PullRequest
0 голосов
/ 15 июня 2011

Я обновил views / devise / registrations / edit.html.erb для поддержки фотографии скрепки для пользователя (User.photo):

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put, :multipart => true }) do |f| %>

<p><%= f.label :photo %><br />
<%= f.file_field :photo %></p>

Это похоже на отправку штрафа:

Started POST "/users" for 127.0.0.1 at Tue Jun 14 13:00:27 -0700 2011
  Processing by Devise::RegistrationsController#update as HTML
  Parameters: {"commit"=>"Update", "authenticity_token"=>"2beiFZYBwuUdTprM3QARML6SQlH9yz/oWzPqfdj1GdQ=", "utf8"=>"✓", "user"=>{"photo"=>#<ActionDispatch::Http::UploadedFile:0x103126b60 @tempfile=#<File:/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/RackMultipart20110614-3154-l07lvd-0>, @original_filename="screenshot-3.png", @headers="Content-Disposition: form-data; name=\"user[photo]\"; filename=\"screenshot-3.png\"\r\nContent-Type: image/png\r\n", @content_type="image/png">, "password_confirmation"=>"[FILTERED]", "current_password"=>"[FILTERED]", "password"=>"[FILTERED]", "email"=>"name@gmail.com"}}
  User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
  CACHE (0.0ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
[paperclip] identify -format %wx%h '/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20110614-3154-1ozp24i-0.png[0]' 2>/dev/null
[paperclip] convert '/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20110614-3154-1ozp24i-0.png[0]' -resize "300x300>" '/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20110614-3154-1ozp24i-020110614-3154-zrpy05-0' 2>/dev/null
[paperclip] identify -format %wx%h '/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20110614-3154-1ozp24i-0.png[0]' 2>/dev/null
[paperclip] convert '/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20110614-3154-1ozp24i-0.png[0]' -resize "100x100>" '/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/stream20110614-3154-1ozp24i-020110614-3154-10hkm68-0' 2>/dev/null
Rendered devise/registrations/edit.html.erb within layouts/application (13.3ms)
Completed 200 OK in 385ms (Views: 17.9ms | ActiveRecord: 0.2ms)

Но почему-то это не сохранение в БД?

Есть идеи, почему это будет?

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Я помню Devise, ограничивающий атрибуты, которые доступны прямо из биты

Если вы добавите

attr_accessible :photo

для вашей модели пользователя это работает?

0 голосов
/ 26 ноября 2013

Я столкнулся с той же проблемой.Я думаю, вы должны убедиться, что в вас ApplicationController

  before_filter :configure_permitted_parameters, if:  :devise_controller?

и определите метод

def configure_permitted_parameters devise_parameter_sanitizer.for (: sign_up) {| u |u.permit (: фотография, ... здесь)} end

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...