Ruby on rails 未定义的方法“action#u mailer';在Capistrano部署期间

Ruby on rails 未定义的方法“action#u mailer';在Capistrano部署期间,ruby-on-rails,ruby-on-rails-3,rvm,capistrano,bundler,Ruby On Rails,Ruby On Rails 3,Rvm,Capistrano,Bundler,我在Capistrano部署期间出现了此错误消息。对我来说,这意味着安装Rails有什么问题吗?Rails当前未安装在服务器端,但它位于我的Gemfile(以及我的Gemfile.lock)中,因此我假设它应该在这一行之前执行的bundle install命令期间安装 给出错误的实际命令是: bundle exec rake RAILS\u ENV=production RAILS\u GROUPS=assets资产:预编译 我想问题只是在捆绑安装期间没有安装Rails。我错过什么了吗 谢谢 更

我在Capistrano部署期间出现了此错误消息。对我来说,这意味着安装Rails有什么问题吗?Rails当前未安装在服务器端,但它位于我的Gemfile(以及我的Gemfile.lock)中,因此我假设它应该在这一行之前执行的
bundle install
命令期间安装

给出错误的实际命令是:

bundle exec rake RAILS\u ENV=production RAILS\u GROUPS=assets资产:预编译

我想问题只是在捆绑安装期间没有安装Rails。我错过什么了吗

谢谢

更新1:Rails似乎通过
bundle install
命令正确安装。如果我查看目录
../shared/bundle/ruby/1.9.1/gems
,我可以在那里看到action mailer

更新2:运行命令
rake assets:precompile
实际上也会在本地失败,因此这与Capistrano没有任何关系。现在我只想弄明白为什么
config
对象不知道关于action mailer的任何信息

更新3:热门路线。看起来我安装的actionmailer版本是0.6.1(?),而Rails的其他部分都是3.2.9<代码>捆绑更新拒绝更新超过此版本的actionmailer。我要把我所有的宝贝都拿走,重新开始


更新4:使用
rvm gemset empty
删除了我的整个gemset。然后再次尝试运行bundle,再次尝试获取actionmailer 0.6.1。我认为bundler或其他什么东西出了问题。

问题在于我在文件中删除了对Rails特定版本的依赖。我刚刚有
gem“rails”
。这似乎完全搞糟了依赖关系的计算,因为它得到的是action mailer的超旧版本,而不是所有gems的一致版本。我猜不指定确切的Rails版本是个坏主意。哎呀

@aardvarkk

感谢您发布此问题,我在安装Rails 4.0.0时遇到了相同的错误,该错误使我无法运行Rails服务器

这是当我试图遵循Hartl的RoR教程时

我在gem文件中添加了
gem“rails”,“4.0.0”
,现在我可以运行我的rails服务器了


谢谢

您是以root用户身份在服务器端运行吗?我是以Unix计算机上
sudo
组成员的身份运行的。所以不,不是以root身份运行,但我应该有权限。它可以在早期阶段创建目录和内容…还可以尝试删除Gemfile.lock