EDIT: Tôi đã quản lý để có được nó để bắt đầu ném các lỗi bằng cách thay đổi các mô hình như thế này:Rails Giấy Clip tải lên không làm việc ... Không có lỗi ném, cuộn lại giao dịch
class User < ApplicationRecord
has_secure_password
has_attached_file :avatar,
:path => ":rails_root/public/system/:attachment/:id/:basename_:style.:extension",
:url => "/system/:attachment/:id/:basename_:style.:extension",
:styles => {
:thumb => ['100x100#', :jpg, :quality => 70],
:preview => ['480x480#', :jpg, :quality => 70],
:large => ['600>', :jpg, :quality => 70],
:retina => ['1200>', :jpg, :quality => 30]
},
:convert_options => {
:thumb => '-set colorspace sRGB -strip',
:preview => '-set colorspace sRGB -strip',
:large => '-set colorspace sRGB -strip',
:retina => '-set colorspace sRGB -strip -sharpen 0x0.5'
}
validates_attachment :avatar,
:presence => true,
:size => { :in => 0..10.megabytes },
:content_type => { :content_type => /^image\/(jpeg|png|gif|tiff)$/ }
belongs_to :leitung
def admin?
self.role == "Admin"
end
def al?
self.role == "Al"
end
end
điều khiển dành cho trông giống như này:
Started POST "/leiter/new" for 127.0.0.1 at 2017-01-01 17:11:59 +0000
Processing by Leiter::UsersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"2z3H8rWo2TLADJtx3kWiCufulyLSBzLLCrxLGaLFH9BWOlGtMZ7BuPFCte8cEY5fC6yFVVggbi6vhESWLFFlRA==", "user"=>{"first_name"=>"asdf", "last_name"=>"asdf", "pfadi_name"=>"asdf", "email"=>"[email protected]", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "leitung_id"=>"1", "role"=>"asdf", "avatar"=>#<ActionDispatch::Http::UploadedFile:0x007feb301d8058 @tempfile=#<Tempfile:/tmp/RackMultipart20170101-6509-1yifkdk.jpg>, @original_filename="nobody_m.original.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"user[avatar]\"; filename=\"nobody_m.original.jpg\"\r\nContent-Type: image/jpeg\r\n">}, "commit"=>"Create an account"}
User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 3], ["LIMIT", 1]]
Command :: file -b --mime '/tmp/3068f4f020f8c43d300b1e06b58b829b20170101-6509-tn2f1u.jpg'
Command :: identify -format '%wx%h,%[exif:orientation]' '/tmp/3068f4f020f8c43d300b1e06b58b829b20170101-6509-q2rz7h.jpg[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError>
Command :: identify -format '%wx%h,%[exif:orientation]' '/tmp/3068f4f020f8c43d300b1e06b58b829b20170101-6509-q2rz7h.jpg[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError>
Command :: identify -format '%wx%h,%[exif:orientation]' '/tmp/3068f4f020f8c43d300b1e06b58b829b20170101-6509-q2rz7h.jpg[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError>
Command :: identify -format '%wx%h,%[exif:orientation]' '/tmp/3068f4f020f8c43d300b1e06b58b829b20170101-6509-q2rz7h.jpg[0]' 2>/dev/null
[paperclip] An error was received while processing: #<Paperclip::Errors::NotIdentifiedByImageMagickError: Paperclip::Errors::NotIdentifiedByImageMagickError>
(0.1ms) begin transaction
Command :: file -b --mime '/tmp/3068f4f020f8c43d300b1e06b58b829b20170101-6509-1p20xan.jpg'
Leitung Load (0.2ms) SELECT "leitungen".* FROM "leitungen" WHERE "leitungen"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
(0.0ms) rollback transaction
Redirected to http://localhost:3000/leiter/new
Completed 302 Found in 136ms (ActiveRecord: 0.4ms)
Tuy nhiên, việc sửa chữa thông thường cho vấn đề này, thiết lập các tập tin development.rb này đã không làm việc:
Paperclip.options[:command_path] = "/usr/local/bin/"
(Bắt đầu OP) Tôi đang làm việc để thiết lập kẹp giấy (với ImageMagick) để người dùng trên ứng dụng của tôi có thể tải lên hình đại diện cho tài khoản của họ. Các avatar sẽ được lưu cục bộ trên máy chủ (nói PC của tôi vì ứng dụng hiện đang được phát triển). Tôi đã theo tài liệu trên GitHub để thiết lập kẹp giấy. Mọi thứ dường như đang hoạt động ... Ngay cho đến khi tôi cố gắng thực sự tải lên một hình ảnh. Sau khi tôi gửi (trong trường hợp này, chỉnh sửa một người dùng hiện có để thêm hình ảnh, nhưng điều tương tự cũng xảy ra khi tạo người dùng mới), nó không gây ra lỗi hoặc bất cứ điều gì, nó chỉ tải lại trang và bỏ nút gửi. Thông báo sau xuất hiện trong bảng điều khiển:
Started PUT "/leiter/edit" for 127.0.0.1 at 2016-12-31 18:33:19 +0000
ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
Processing by Leiter::UsersController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"RjjDgMQESgZ/9DVXTWoTvJDitAmYXqfMyVJJyKpXDsp3hE0dejJ6erMlV+wsFEH9bFlz7ZsvBlgPO63o8PkpYw==", "user"=>{"first_name"=>"Admin", "last_name"=>"Admin", "pfadi_name"=>"Admin", "email"=>"[email protected]", "leitung_id"=>"6", "role"=>"Admin", "avatar"=>#<ActionDispatch::Http::UploadedFile:0x00000003671238 @tempfile=#<Tempfile:/tmp/RackMultipart20161231-3455-mekx7p.jpg>, @original_filename="nobody_m.original.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"user[avatar]\"; filename=\"nobody_m.original.jpg\"\r\nContent-Type: image/jpeg\r\n">}, "commit"=>"Speichern"}
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT ? [["id", 1], ["LIMIT", 1]]
(0.1ms) begin transaction
Command :: PATH=/usr/local/bin/:$PATH; file -b --mime '/tmp/3068f4f020f8c43d300b1e06b58b829b20161231-3455-1vvcs8q.jpg'
Command :: PATH=/usr/local/bin/:$PATH; file -b --mime '/tmp/3068f4f020f8c43d300b1e06b58b829b20161231-3455-1cldo2f.jpg'
Leitung Load (0.2ms) SELECT "leitungen".* FROM "leitungen" WHERE "leitungen"."id" = ? LIMIT ? [["id", 6], ["LIMIT", 1]]
(0.1ms) rollback transaction
No template found for Leiter::UsersController#update, rendering head :no_content
Completed 204 No Content in 81ms (ActiveRecord: 1.4ms)
Trong chế độ xem, bất cứ nơi nào hình ảnh được cho là xuất hiện, thay vào đó nó bị thiếu. Thú vị là nó cho phép tôi tạo và cập nhật người dùng nếu tôi không tải lên hình ảnh, mặc dù tôi có hình ảnh được yêu cầu trong các tham số. Tôi hoàn toàn không biết gì về lý do tại sao điều này xảy ra. Nếu nó giúp, đây là là mô hình người dùng của tôi, điều khiển tôi v.v .:
tài mẫu:
class User < ApplicationRecord
has_secure_password
has_attached_file :avatar, styles: { medium: "300x300>", thumb: "100x100>" }, default_url: "/images/:style/missing.png"
validates_attachment_content_type :avatar, :content_type => ["avatar/jpg", "avatar/jpeg", "avatar/png", "avatar/gif"]
belongs_to :leitung
def admin?
self.role == "Admin"
end
def al?
self.role == "Al"
end
end
Người dùng điều khiển:
class Leiter::UsersController < ApplicationController
def new
@newuser = User.new
end
def edit
@user = User.find(session[:user_id])
end
def update
@user = User.find(session[:user_id])
if @user.update_attributes(user_params) then
redirect_to '/leiter'
end
end
def create
@user = User.new(user_params)
if @user.save
redirect_to '/leiter'
else
redirect_to '/'
end
end
private
def user_params
params.require(:user).permit(:first_name, :last_name, :pfadi_name, :email, :password, :password_confirmation, :leitung_id, :role, :avatar)
end
end
Xem để cập nhật người dùng:
<%= simple_form_for @user, url: {action: "edit"}, html: { method: :put } do |f| %>
<%= f.text_field :first_name, :placeholder => "First name" %><br>
<%= f.text_field :last_name, :placeholder => "Last name" %><br>
<%= f.text_field :pfadi_name, :placeholder => "Pfadi name" %><br>
<%= f.email_field :email, :placeholder => "Email" %><br>
<%= f.association :leitung, :placeholder => "Leitung" %><br>
<%= f.text_field :role, :placeholder => "Rolle" %><br>
<%= f.input :avatar, as: :file %>
<%= f.submit "Speichern", class: "btn-submit" %>
<% end %>
Nếu bạn cần thêm thông tin, tôi có thể cung cấp. Cảm ơn bạn đã giúp đỡ, tôi chắc chắn rằng tôi đã mắc phải một số sai lầm tầm thường, nhưng tôi không thể tìm thấy nó ... Tôi mới đến đường ray, nhưng nó đã rất thú vị cho đến nay!
EDIT:
gem 'rails', '~> 5.0.0', '>= 5.0.0.1'
gem "paperclip", "~> 5.0.0"
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
Bạn đang sử dụng Windows? – boholdyjeramae
@jeramaedybohol Không, Ubuntu. –