未初始化的常量User :: PhotoUploader

时间:2016-04-13 13:10:31

标签: ruby ruby-on-rails-4 minimagick

我试图使用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'

1 个答案:

答案 0 :(得分:5)

我认为您需要将carrierwave添加到application.rb文件中,如下所示:

require File.expand_path('../boot', __FILE__)

require 'rails/all'

require 'carrierwave'

if defined?(Bundler)
  # Bundler stuff
end

试试这可能是你的工作

  

或者有时只需重新启动rails服务器,之后一切正常   精细。 :)