我试图使用mini_magick,但是在遵循git指南之后我还是接受了未初始化的常量。我有另一个项目使用相同的语法正常工作..但必须遗漏一些东西..
photo_uploader.rb
class PhotoUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def default_url
"photo.jpg"
end
#right orientation
def right_orientation
manipulate! do |img|
img.auto_orient
img
end
end
def filename
"photo.jpg" if original_filename
end
end
user.rb
require 'bcrypt'
require 'carrierwave'
require 'carrierwave/orm/activerecord'
class User < ActiveRecord::Base
belongs_to :pakars
has_many :courses
scoped_search on: [:name1, :name2]
mount_uploader :photo, PhotoUploader
attr_accessor :password, :password_confirmation
def self.authenticate(email, pass)
u=where("email =?", email).first
return nil if u.nil?
return u if BCrypt::Password.new(u.hashed_password) == pass
nil
end
def password=(pass)
self.hashed_password = BCrypt::Password.create(pass)
end
end
这是错误
uninitialized constant User::PhotoUploader
Rails.root: C:/Users/User/Desktop/Ruby_training/Project/Pakar_my
是的,我已经安装了宝石
的Gemfile
#carrier wave
gem 'carrierwave'
#mini_magick
gem 'mini_magick' , '3.7.0'
答案 0 :(得分:5)
我认为您需要将carrierwave
添加到application.rb
文件中,如下所示:
require File.expand_path('../boot', __FILE__)
require 'rails/all'
require 'carrierwave'
if defined?(Bundler)
# Bundler stuff
end
试试这可能是你的工作
或者有时只需重新启动rails服务器,之后一切正常 精细。 :)