【问题标题】:Deploying to Rails project to Heroku: Could not find activemodel将 Rails 项目部署到 Heroku:找不到 activemodel
【发布时间】:2012-01-04 03:34:58
【问题描述】:

我对 Rails 比较陌生,并且一直在学习 Michael Hartl 教程。在整个过程中,我一直在将我的项目部署到 Heroku,但是现在我已经到了第 5 章的末尾,我遇到了“应用程序错误”。具体来说,当我查看 Heroku 日志时出现以下错误:

 2012-01-04T03:05:04+00:00 app[web.1]: Could not find activemodel-3.2.0.rc1 in any of the sources
2012-01-04T03:05:06+00:00 heroku[web.1]: State changed from starting to crashed
2012-01-04T03:05:06+00:00 heroku[web.1]: Process exited
2012-01-04T03:05:11+00:00 heroku[router]: Error H10 (App crashed) -> GET floating-stone 5077.heroku.com/ dyno= queue= wait= service= status=503 bytes=

在日志的前面,我也看到了以下错误:

WARNING:  Invalid .gemspec format in '/app/.bundle/gems/ruby/1.9.1/specifications/rails-3.2.0.rc1.gemspec'
WARNING:  Invalid .gemspec format in '/app/.bundle/gems/ruby/1.9.1/specifications/actionmailer-3.2.0.rc1.gemspec'
WARNING:  Invalid .gemspec format in '/app/.bundle/gems/ruby/1.9.1/specifications/actionpack-3.2.0.rc1.gemspec'

我的gemfile如下:

source 'https://rubygems.org'

gem 'rails', '3.2.0.rc1'


# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'mysql2'



# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.0'
  gem 'coffee-rails', '~> 3.2.0'

  #gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'


group :development do
  gem 'rspec-rails', '2.7.0'
  gem 'ZenTest', '4.6.2'
  gem 'autotest-growl'
  gem 'autotest-fsevent'
  gem 'webrat', '0.7.3'
end

group :test do
  gem 'rspec', '2.7.0'
  gem 'webrat', '0.7.3'
end 

我在调试问题时遇到了麻烦,我浏览了几乎所有我能找到的 rails/heroku 帖子,但没有关于这个特定问题的任何内容。我正在寻求一些帮助……如果这是非常基本的事情,我深表歉意。

我还应该提到,该应用程序在我的本地机器上运行良好,这是我的数据库信息(我使用的是 mysql)。这是数据库信息。

# MySQL.  Versions 4.1 and 5.0 are recommended.
# 
# Install the MYSQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: sample_app_development
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: sample_app_test
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: sample_app_production
  pool: 5
  username: root
  password:
  socket: /tmp/mysql.sock

谢谢!

【问题讨论】:

    标签: ruby-on-rails-3 heroku activemodel


    【解决方案1】:

    现在可以使用新 Rails 的实时版本...我认为您应该尝试使用 rails 3.1.3 成熟版本...这似乎是配置问题,因为我正在使用 rails 3.1.3 完美运行我的应用程序在heroku中。

    【讨论】:

    • 降级似乎效果很好,然后我遇到了关于蓝图 css 的问题,并在此处找到了该问题的答案:link 感谢您的帮助!
    【解决方案2】:

    您的 Gemfile.lock 文件是否提及此版本的 ActiveModel?是否完成了完整的bundle update rails/bundle install,然后提交文件并重新部署?

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。在本地开发中有效的方法在我部署到 Heroku 时无效。您可能有一个 gem 被锁定到旧版本的 Rails(或 ActiveSupport,就像我的情况一样)。检查您的 Gemfile.lock 文件。您可能会找到对旧版本 Rails 组件的引用。

      如果您认为这是真的,请尝试将 gem 注释掉,看看您的应用在部署到 Heroku 时是否会运行。如果是这样,请查看违规 gem 的 GitHub 分支,看看是否有人有解决方案。如果您找到替代方案,请在 gem 文件中指定 git 存储库,然后运行 ​​bundle install。

      例如

      gem 'tinymce-rails', :git => 'git://github.com/spohlenz/tinymce-rails.git'
      

      【讨论】:

        猜你喜欢
        • 2016-01-11
        • 2020-10-24
        • 2018-07-24
        • 2011-08-29
        • 2016-05-08
        • 2020-03-01
        • 1970-01-01
        • 2018-01-23
        • 2018-02-17
        相关资源
        最近更新 更多