Ich versuche, Büroklammer zu implementieren, damit Benutzer ihr Profilbild auf ihrem Konto aktualisieren können. Ich benutze Devise für Kontoerstellung und Aktualisierung, aber ich bin ein wenig unsicher darüber, wie Devise mit Paperclip funktioniert, um das Bild in ActiveRecord zu speichern. Mit Büroklammer kann ich ein Foto auswählen und absenden, aber das Foto wird nicht angezeigt, wenn ich zur Showansicht gehe. Ich bin mir nicht sicher, ob das Gerät es im Active Record entsprechend speichert oder was das Problem sein könnte, nachdem ich zu viele Stunden mit dieser Funktion verbracht habe, komme ich in die StackOverflow Community um Hilfe. Bitte hilf mir!Nicht in der Lage, Büroklammer zum Hochladen von Bildern mit Gerät zum Aktualisieren von Benutzerprofil Foto in Ruby on Rails
Benutzer Controller:
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
end
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
end
def user_params
params.require(:user).permit(:image)
end
end
registrations_controller
class RegistrationsController < Devise::RegistrationsController
private
def sign_up_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation)
end
def account_update_params
params.require(:user).permit(:name, :phone, :email, :image,
:password, :password_confirmation, :current_password)
end
end
edit.html.erb (registration Ansicht ersinnen)
<%= form_for (resource, as: resource_name, url:
registration_path(resource_name), html: { method: :put }) do |f| %>
<%= devise_error_messages! %>
<div class="field">
<%= f.file_field :image %>
</div>
...
Benutzermodell:
class User < ApplicationRecord
has_many :appointments
has_many :fruits, dependent: :destroy
has_attached_file :image, :styles => { large: "150x150>", medium:
"100x100>", thumb: "50x50#"}
validates_attachment_content_type :image, content_type:
/\Aimage\/.*\Z/
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
Ansicht
zeigen:
<%= stylesheet_link_tag "user" %>
<h1><%= @user.name %></h1>
<div class="pic">
<%= image_tag @user.image.url(:large) %>
</div>
<h4>Phone: <%= @user.phone %></h4>
<h4>Email: <%= @user.email %></h4>
<p>
<%= link_to "Edit Info", edit_user_registration_path(current_user) %>
</p>
Aktualisieren Sie Ihre Frage mit Ihrem Code Benutzermodell – rajbir
Können Sie uns auch den Code für Anzeigen Bitte, wie Sie Ihre „Show“ Ansicht geschrieben? Überprüfen Sie auch, ob etwas, das mit dem Bild zusammenhängt, in der Datenbank gespeichert wird. – bitsapien
Nur aktualisiert. Was denkst du könnte das Problem sein –