Ruby on rails 4 回形针命名错误:未初始化常量模型::ImageUploader

Ruby on rails 4 回形针命名错误:未初始化常量模型::ImageUploader,ruby-on-rails-4,rubygems,paperclip,Ruby On Rails 4,Rubygems,Paperclip,我发现了一个类似的问题: 但我在那里尝试过这些建议: carrierwave已安装且捆绑包已完成 我已经仔细检查了我的模型 我的用户模型有: has_one :image, :as => :assetable, :class_name => "User::Image", :dependent => :destroy 我的用户创建工作可以找到,但一旦我尝试访问视图,它就会被以下代码打断: <%= link_to image_tag((current_user.imag

我发现了一个类似的问题:

但我在那里尝试过这些建议: carrierwave已安装且捆绑包已完成 我已经仔细检查了我的模型

我的用户模型有:

has_one :image, :as => :assetable, :class_name => "User::Image", :dependent => :destroy
我的用户创建工作可以找到,但一旦我尝试访问视图,它就会被以下代码打断:

 <%= link_to image_tag((current_user.image.nil? ? Settings.default_user_image : current_user.image.attachment.url(:thumbnail)) , :style=>'max-width:60px;', :alt=>current_user.full_name, :title=>current_user.full_name), user_path(current_user) %>
最大宽度:60px;,:alt=>当前用户。完整用户名,:title=>当前用户。完整用户名),用户路径(当前用户)%>
我不知道为什么这个坏了,早些时候它工作得很好,我唯一能想到的是,当我的gemfile.lock发生冲突时,我再次打包了

这就是我在rails控制台上复制问题的方式:

2.1.1 :001 > u = User.new
2.1.1 :002 > u.build_image
NameError: uninitialized constant User::User::Image
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:133:in `compute_type'
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active_record/reflection.rb:190:in `klass'
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active_record/reflection.rb:207:in `build_association'
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active_record/associations/association.rb:247:in `build_record'
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active_record/associations/singular_association.rb:29:in `build'
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active_record/associations/builder/singular_association.rb:18:in `build_image'
        from (irb):2
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands/console.rb:90:in `start'
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands/console.rb:9:in `start'
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:69:in `console'
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
        from /home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands.rb:17:in `<top (required)>'
        from bin/rails:4:in `require'
        from bin/rails:4:in `<main>'
2.1.1:001>u=User.new
2.1.1:002>u.build\u图像
NameError:未初始化的常量User::User::Image
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active\u record/heritation.rb:133:in'compute\u type'
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active\u record/reflection.rb:190:in`klass'
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active\u record/reflection.rb:207:in“build\u association”
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active\u record/associations/association.rb:247:in“build\u record”
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active\u record/associations/singular\u association.rb:29:in“build”
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.0/lib/active\u record/associations/builder/singular\u association.rb:18:in“build\u image”
来自(irb):2
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands/console.rb:90:in'start'
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands/console.rb:9:in'start'
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands/commands\u tasks.rb:69:在“控制台”中
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands/commands\u tasks.rb:40:in“run\u command!”
from/home/aditya/.rvm/gems/ruby-2.1.1/gems/railties-4.1.0/lib/rails/commands.rb:17:in`'
从箱子/轨道:4:in“require”
从箱子/轨道:4:in`'
请帮忙。我现在正处于一个关键时刻

发生错误的文件的路径为: /demo/app/views/home/index.html.erb

图像类位于: /演示/app/models/user/image.rb

image.rb的内容

class User::Image < Asset
  has_attached_file :attachment, {
    fog_credentials: {:aws_access_key_id=>"***", :aws_secret_access_key=>"***", :provider=>"AWS"}, :fog_public=>true, :fog_directory=>"test",

    styles: { :thumbnail => "60x60#", :profile => "165x165#" },
    storage: :multiple,
    path: ":compatible_rails_root/users/files/:id/:style.:extension",
    url:  "/uploads/posts/files/:id/:style.:extension",
    multiple_if:     lambda { |user| true },
    display_from_s3: lambda { |user| true }
  }

  validates_attachment_content_type :attachment, :content_type => ["image/jpg", "image/jpeg", "image/png", "image/gif"]
end
class用户::图像“***”,:aws\U机密\U访问\U密钥=>“***”,:提供程序=>“aws”},:fog\U公共=>真,:fog\U目录=>“测试”,
样式:{:thumbnail=>“60x60”,:profile=>“165x165”},
存储::多个,
路径:“:compatible\u rails\u root/users/files/:id/:style.:extension”,
url:“/uploads/posts/files/:id/:style.:extension”,
多个_if:lambda{| user | true},
显示来自_s3:lambda{| user | true}
}
验证附件内容类型:附件,:内容类型=>[“image/jpg”、“image/jpeg”、“image/png”、“image/gif”]
结束
用户模式是简单的
/demo/app/models

可能您的名称空间是错误的,请尝试按如下方式编写您的类(注意引入的
用户
模块):


这(以后可能会重新启动服务器),一切都应该正常。

你能发布镜像和用户类的路径吗?@neo用请求的信息更新了问题。.在深入研究ActiveRecord代码后,我想rails尝试导入
用户::image
时会出现
名称错误。尝试使用
有一个:image,:class\u name=>“::User::image”
(!注意class\u name中的leading
),它可以给你更好的堆栈跟踪。那么,把这个问题加上。
# app/models/users/image.rb
module Users
  class Image < Asset
    has_attached_file :attachment, { # ... 
    # ....
  end
end
# app/models/users.rb
class User < ActiveRecord::Base
  has_one :image, :as => :assetable, :class_name => "Users::Image", #...
  # ...
end