Ruby on rails Rails错误-无法加载此类文件--aws sdk(您可能需要安装aws sdk gem)

Ruby on rails Rails错误-无法加载此类文件--aws sdk(您可能需要安装aws sdk gem),ruby-on-rails,ruby-on-rails-3,amazon-s3,paperclip,Ruby On Rails,Ruby On Rails 3,Amazon S3,Paperclip,我有一个RoR应用程序,通过回形针和亚马逊s3上传图像。在我决定将路由从myapp.com/id更改为myapp.com/model-name之前,一切都很顺利。现在我得到了以下错误:LoadError无法加载这样的文件--aws sdk(您可能需要安装aws sdk gem)。这些更改涉及更改模型、控制器和数据库 型号: class Major < ActiveRecord::Base attr_accessible :glance, :name, :image # Valid

我有一个RoR应用程序,通过回形针和亚马逊s3上传图像。在我决定将路由从myapp.com/id更改为myapp.com/model-name之前,一切都很顺利。现在我得到了以下错误:
LoadError无法加载这样的文件--aws sdk(您可能需要安装aws sdk gem)
。这些更改涉及更改模型、控制器和数据库

型号:

class Major < ActiveRecord::Base
  attr_accessible :glance, :name, :image

  # Validations
  validates :glance, presence: true
  validates :name, presence: true
  validates_attachment :image, content_type: {content_type: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif']}, size: { less_than: 5.megabytes }
  validates :slug, uniqueness: true, presence: true

  before_validation :generate_slug

  # Associations
  has_attached_file :image, styles: { 
   profile: "350x350>", 
   similar: '166x134>', 
   thumb: "100x100>" 
  },
    :storage => :s3,
    :bucket => 'major finder'
    :s3_credentials => {
      :access_key_id => 'my_key_id',
      :secret_access_key => 'my_secret_access_key'
    },
    :path => "/majors/:attachment/:style/:filename"    

  # make the url path memorable (instead of using the id)
  def to_param
    slug
  end

  def generate_slug
    self.slug ||= name.parameterize
  end 
end
这是我的档案:

gem 'rails', '3.2.11'
gem 'jquery-rails'
gem 'devise'
gem 'simple_form'
gem 'aws-sdk'
gem "paperclip", "~> 3.0"
gem 'sunspot_rails'
gem 'activeadmin'


group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
  gem 'sunspot_solr'
end

group :assets do
  gem 'sass-rails', '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
  gem 'bootstrap-sass', '~> 2.2.2.0'
end
我运行了
$rails g migration将_slug\u添加到_majorsslug:index
,然后
$rake db:migrate

现在,即使我已经删除了所有的更改,我仍然得到这个错误。我已经找遍了,找不到解决办法。有人有什么想法吗

解决方案是错误编写的,您还需要
aws sdk
gem处于开发模式(因为您正在模型中使用它)。只需将gem'aws sdk'移动到组外即可

顺便说一句:在开发和生产模式下使用相同的DB引擎,我和您一样在配置上有一些问题。

这实际上是您在管理文件中的版本时可能遇到的问题


在我的例子中,它是一种较新版本的回形针,导致了问题。降级到旧版本为我修复了它。

这是有道理的!非常感谢。我真不敢相信我错过了。非常感谢。配置有哪些问题?谢谢你的帮助!Postgres解析以SQLite以外的其他方式传递给DB的参数,因此在开发人员中,所有测试都通过,但生产无法正常工作。解决方案不是很明显,请参见下面我的答案。由于大型项目中的许多项目都是由其他开发人员编写的,因此我遇到的问题需要降级到特定版本。6.0.0版也发生在我身上。我可以确认回形针也存在此问题(手动添加为mongoid回形针的升级(自4年前以来未维护)),仅在版本6.0.0上解决。如果您的
gem文件
包含
aws-sdk-s3
,并且您遇到此错误,则意味着您需要在开始支持
aws-sdk-s3
gem时,将
回形针
gem版本升级到6+。
  create_table "majors", :force => true do |t|
    t.text     "glance",             :limit => 255
    t.datetime "created_at",                        :null => false
    t.datetime "updated_at",                        :null => false
    t.string   "name"
    t.string   "image_file_name"
    t.string   "image_content_type"
    t.integer  "image_file_size"
    t.datetime "image_updated_at"
  end
gem 'rails', '3.2.11'
gem 'jquery-rails'
gem 'devise'
gem 'simple_form'
gem 'aws-sdk'
gem "paperclip", "~> 3.0"
gem 'sunspot_rails'
gem 'activeadmin'


group :production do
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
  gem 'sunspot_solr'
end

group :assets do
  gem 'sass-rails', '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
  gem 'bootstrap-sass', '~> 2.2.2.0'
end